[운영체제] Operating System Architecture

2024. 4. 23. 23:13·Computer Science/운영체제

운영 체제의 아키텍처는 대체로 단일 커널(monolithic kernel)과 마이크로커널(microkernel) 두 가지로 나뉜다.

  • 단일 커널(monolithic kernel): 이 아키텍처에서는 운영 체제의 필수 구성 요소가 모두 단일 커널 내에 통합된다. 따라서 프로세스 관리, 메모리 관리, 파일 시스템, 디바이스 드라이버 등 모든 기능이 단일 커널 내에서 구현된다.
  • 마이크로커널(microkernel): 이 아키텍처에서는 커널에는 필수적인 핵심 운영 체제 기능만 포함된다. 주로 프로세스 관리(IPC, 동기화, 기본 스케줄링) 및 기본적인 메모리 관리 능력이 있다. 그 외의 서비스들(장치 드라이버, 파일 시스템, 가상 메모리 관리자, 윈도우 시스템, 보안 서비스 등)은 사용자 공간의 외부 서브시스템으로 분리되어 구현된다.

 

 

 

# 1. OS Architecture: Microkernel

 

UNIX (System V Release 4, Solaris) 및 Linux와 같은 운영 체제는 대부분 단일 커널(monolithic kernel) 아키텍처 기반이다.

 

이러한 운영 체제에서는 필요한 모든 기능이 단일 커널 내에 통합되어 있다. 따라서 프로세스 관리, 메모리 관리, 파일 시스템, 디바이스 드라이버 등 모든 기능이 커널 내에서 구현된다.

Monolithic Kernel

 

 

 

# 2. OS Architecture: Microkernel

 

OS 아키텍처: 마이크로커널

  • 마이크로커널은 커널에 주요 기능만 할당한다.
  • 주요 기능은 주소 공간, 프로세스 간 통신(IPC), 기본 스케줄링 등이 있다.

마이크로커널 아키텍처는 커널이 최소한의 기능만을 담당하고, 나머지 기능은 외부의 서브시스템으로 이루어진 운영 체제를 구성한다. 이러한 아키텍처는 운영 체제의 유연성과 확장성을 높이며, 유지보수 및 개발이 용이하도록 도와 준다.

단일 커널(좌), 마이크로 커널(우)

 

# 2-1 장점

 

마이크로커널 구조의 장점은 다음과 같다.

  1. 일관된 인터페이스: 프로세스가 요청하는 모든 서비스에 대해 일관된 인터페이스를 제공한다. 커널 수준과 사용자 수준의 서비스를 구분하지 않고 모든 서비스가 메시지 전달을 통해 제공된다.
  2. 확장성: 새로운 서비스를 추가할 수 있다. 즉, 시스템에 새로운 기능을 쉽게 추가할 수 있다.
  3. 유연성: 시스템에 기능을 추가하거나 제거할 수 있다. 이는 시스템이 변화하는 요구 사항에 적응할 수 있음을 의미한다.
  4. 이식성: 시스템을 새로운 프로세서로 이동할 때 필요한 변경 사항이 마이크로커널에만 적용되므로, 시스템의 이식성이 향상된다. 다시 말해, 이러한 변경 사항은 다른 서비스에 영향을 미치지 않는다.
  5. 신뢰성: 작은 마이크로커널은 엄격하게 테스트될 수 있다. 따라서 시스템의 신뢰성이 향상된다.
  6. 분산 시스템 지원: 메시지가 대상 머신을 명시하지 않고 전송된다. 이는 분산 시스템에서 특히 중요하다.

마이크로커널 구조는 유연성, 이식성, 확장성 및 신뢰성과 같은 다양한 장점을 제공하여 운영 체제의 설계와 구현을 단순화하고 개선합니다.

 

# 2-2 단점

 

마이크로커널의 단점은 다음과 같다.

  1. 성능: 마이크로커널은 모놀리식 커널보다 느릴 수 있다. 이는 프로세스간 통신이 필요하기 때문이다. 메시지를 구성하고 보내는 데와 응답을 수락하고 해독하는 데 추가적인 오버헤드가 발생한다.

그러나 마이크로커널의 디자인을 신중하게 계획함으로써 이러한 성능 차이를 크게 줄일 수 있다. 즉, 효율적인 메시지 패싱 및 통신 메커니즘을 구현하여 성능을 최적화할 수 있다.

 

 

 

# 3. Example Operation Systems

 

  • UNIX: 단일 커널 아키텍처
    • 4.4BSD
    • System V 릴리스 4 (SVR4)
    • Solaris
  • Linux: 단일 커널 아키텍처
    • 버전 2.6, 버전 3.3 등
  • Windows: 단일 또는 반-마이크로커널 아키텍처
    • Windows 98, 2000, NT, XP, CE, Vista, Windows 7 등
  • 모바일 기기용 운영 체제: 단일 커널 아키텍처
    • REX, Symbian, Linux, Linux+Android, iOS, Windows Mobile 등
  • 실시간 운영 체제: 단일 커널 아키텍처
    • VxWorks, RTLinux, QNX, LynxOS 등
  • 임베디드 시스템용 운영 체제: 단일 커널 아키텍처

이러한 운영 체제들은 다양한 아키텍처를 사용하며, 각각의 특징에 따라 다양한 분야에 사용된다.

 
 
 

# 4. UNIX

 

UNIX는 초기에는 Multics에서 파생되었다.

 

Bell Labs의 Ken Thompson과 Dennis Ritchie 등에 의해 1971년에 출시되었는데 UNIX는 C 언어로 다시 작성되었으며, 1976년에 Bell Labs 외부에서 처음으로 널리 사용 가능한 버전인 버전 6이 출시되었다.

 

이후 다양한 기업 및 연구소에서 다양한 버전이 출시되었다. 여기에는 버클리 소프트웨어 배포판(BSD)이 포함되어 있으며, 또한 AT&T에 의해 System III, System IV, System V 릴리스 4 (SVR4) 등이 출시되었다. 또한 Sun Microsystems에서 개발한 Solaris도 있으며, 이는 SVR4 기반의 UNIX로 가장 널리 사용되고 성공한 상용 UNIX 구현이다.

 

UNIX는 주로 메인프레임 및 서버 컴퓨터용으로 사용되는 운영 체제이다.

유닉스 아키텍처

유닉스 커널

 

 

 

# 5. Linux

 

리눅스

  • IBM PC용 UNIX의 변형으로 시작됨
  • 리누스 토르발스(핀란드의 컴퓨터 공학 학생)가 초기 버전을 작성함
  • 리눅스는 1991년에 인터넷에 처음으로 게시됨
  • 현재는 여러 플랫폼에서 실행되는 완전한 기능의 UNIX 시스템임
  • 무료이며 소스 코드가 제공됨
    • 리눅스 커널 아카이브: https://www.kernel.org/
  • 성공의 핵심 요소는 무료 소프트웨어 패키지의 제공임
  • 매우 모듈화되어 있고 쉽게 구성할 수 있음

리눅스는 초기에는 개인 컴퓨터 사용자를 대상으로 시작되었지만, 이제는 서버, 임베디드 장치, 모바일 기기 등 다양한 환경에서 널리 사용되고 있다. 오픈 소스로서, 전 세계의 개발자들이 기여하고 있으며, 그 결과로 지속적인 개선과 업데이트가 이루어지고 있다.

Linux Kernel Components

 

 

 

# 6. Windows

 

Windows는 마이크로커널과 사용자 모드 프로세스로 구성된다. 사용자 모드 프로세스는 다음과 같은 요소들로 구성된다.

  1. 시스템 지원 프로세스:
    • 세션 관리자, 인증 서브시스템, 서비스 관리자, 로그온 프로세스 등과 같은 시스템을 관리하는 데 필요한 프로세스입니다.
  2. 서비스 프로세스:
    • 프린터 스풀러, 이벤트 로거, 장치 드라이버와 협력하는 사용자 모드 구성 요소 등과 같은 네트워크 서비스와 같은 서비스를 제공합니다.
    • 이러한 서비스는 마이크로소프트와 외부 소프트웨어 개발자가 시스템 기능을 확장하기 위해 사용됩니다.
  3. 응용 프로그램:
    • 사용자가 시스템을 사용하는 데 필요한 기능을 제공하는 실행 파일(EXE) 및 DLL로 구성됩니다.
  4. 환경 서브시스템:
    • 다른 운영 체제 환경을 제공합니다. (예: Win32 및 POSIX)
Windows Architecture

'Computer Science > 운영체제' 카테고리의 다른 글

[운영체제] 프로세스 상태도  (0) 2024.07.29
[운영체제] 프로세스에 대하여 ..  (0) 2024.04.24
[운영체제] 분산 시스템과 Command-Interpreter System  (0) 2024.04.23
[운영체제] Multi-programming과 Timesharing  (1) 2024.04.23
[운영체제] 운영체제란 무엇인가 ?  (0) 2024.04.22
'Computer Science/운영체제' 카테고리의 다른 글
  • [운영체제] 프로세스 상태도
  • [운영체제] 프로세스에 대하여 ..
  • [운영체제] 분산 시스템과 Command-Interpreter System
  • [운영체제] Multi-programming과 Timesharing
하가네
하가네
  • 하가네
    하 렌
    하가네
  • 전체
    오늘
    어제
    • 분류 전체보기 (93) N
      • Computer Science (23)
        • 운영체제 (7)
        • 데이터통신 (6)
        • 자료구조 (4)
        • 논리회로 (0)
        • 확률 및 통계 (0)
        • 데이터베이스 (2)
        • AI소프트웨어 (3)
        • 컴퓨터네트워크 (1)
      • Language (0)
        • Java (0)
      • Framework (8)
        • Spring (8)
      • Tips (2)
        • 터미널 명령어 (1)
        • 우분투 명령어 에러 (1)
      • SSA (6) N
        • Front (1)
        • Back (4) N
        • DB (0)
        • 기획 (1)
      • 우아한테크코스 (0)
        • 7기 프리코스 (0)
      • CNU SW 아카데미 (42)
        • 1주차 (5)
        • 2주차 (5)
        • 3주차 (2)
        • 4주차 (1)
        • 5주차 (3)
        • 6주차 (2)
        • 7주차 (0)
        • 8주차 (1)
        • 9주차 (14)
        • 10주차 (0)
        • 11주차 (1)
        • 12주차 (0)
        • 13주차 (2)
        • 14주차 (2)
        • 15주차(최종 프로젝트) (3)
        • 최종 프로젝트 이후 (1)
      • 모각코 (6)
        • 2023 동계 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.
하가네
[운영체제] Operating System Architecture
상단으로

티스토리툴바