열렬히.뛰기

운영체제 구조

운영체제 > Part 1 : 운영체제란? > 공룡책 1장 : 컴퓨터 시스템 > 운영체제의 구조 > 마스터플랜 > 운영체제 구조

운영체제의 구성요소들이 어떻게 상호 연결되는 지 살펴보자.

모놀리식 구조

단일 주소 공간에 커널의 모든 기능에 다 때려박는 방식.

  • 전통적인 유닉스의 구현 방식이다.
  • 단, 확장과 구현이 어렵다.
  • 물론 커널 안의 통신 속도가 빠르고, 오버헤드가 거의 없다.
    • 오버헤드 : 어떤 명령어를 처리하는데 소비되는 간접적, 추가적인 컴퓨터 자원.

계층적 접근

최하층을 하드웨어, 최상층을 사용자 인터페이스로 잡는 방식

  • 구현과 디버깅이 간단하다.
  • 각 계층의 기능을 적절히 정의하는 것이 좀 힘들다.
  • 사용자 프로그램이 여러 계층을 통과해야 하므로 오버헤드에 취약하다.
  • 단, 현대의 운영체제는 이 설계 방식을 어느 정도는 따르고 있다.

마이크로 커널

유닉스가 커짐에 따라 모놀리식을 적용하기 힘들어지자 등장한 방식.

커널에서 필요없는 부분을 제거한 뒤 사용자 수준으로 넘긴다.

커널에 보통 남는 것은 통신, 최소한의 프로세스, 메모리 관리이다.

장점

  • 운영체제의 확장이 쉽다.
  • 모든 서비스가 사용자 공간에 추가되기 때문에, 커널을 변경할 필요가 없다.
  • 다른 하드웨어로의 이식이 쉽다.
  • 한 서비스가 잘못되어도, 운영체제의 다른 부분은 영향을 안 받는다.

단점

가중된 시스템 기능 오버헤드 때문에 성능이 나빠진다.

  • 두 개의 사용자 수준 서비스가 통신해야 하는 경우 별도의 주소 공간에 서비스가 존재하기 때문에 메세지가 복사되어야 한다.
  • 메세지를 교환하기 위해 한 프로세스에서 다음 프로세스로 전환해야 할 수도 있다.

예시

  • iOS, macOS, watchOS 등에 들어가는 Darwin 커널이 마이크로커널 운영체제이다.
  • 실시간 운영체제 QNX

모듈

  • 가장 최신 기술.
  • 커널은 핵심적인 구성요소의 집합을 가지고, 부팅 때나 실행 중에 부가적인 서비스들을 모듈을 통하여 링크할 수 있다.
  • 커널은 핵심 서비스를 제공하고, 다른 서비스들은 커널이 실행되는 동안 동적으로 구현

하이브리드 시스템

  • 오늘날의 운영체제는 사실 앞의 4가지 방식을 혼합한 것이다.

iOS의 구조

  1. 사용자 경험 층
  2. 응용프로그램 프레임워크 층
  3. 핵심 프레임워크
  4. 커널 : 다윈

Darwin의 구조

  1. 라이브러리 인터페이슨

  2. Mach 트랩 & BSD 시스템 콜

  3. 기본 운영체제 서비스

    (이 기능은 대부분 커널 추상화를 통해 사용 가능)