모노리틱 커널, 마이크로 커널

개념
마이크로 커널 정의 프로세스/메모리 관리 등 핵심 기능만을 커널에 구현, 나머지 기능은 독립적 서비스 모듈로 구현하여 제공하는 운영체제 구조

I. 마이크로 커널 개요
    가. 마이크로 커널 정의

  • 프로세스/메모리 관리 등 핵심 기능만을 커널에 구현, 나머지 기능은 독립적 서비스 모듈로 구현하여 제공하는 운영체제 구조

 

    나. 마이크로 커널 요구조건

  • 프로세스 관리, 메모리 관리, 프로세스 간 메시지 전달 기능
  • C/C++ 로 작성, 하드웨어 종속성을 최소화 하고 이기종 컴퓨터 간 이식성 확보

 

II. 마이크로 커널 구성 및 Monolithic Kernel 과의 비교
    가. 마이크로 커널 구성

구성요소

주요기능

Process Manager

프로세스 생성/자원할당/상태관리/스케줄링

Thread Manager

스레드 생성/자원할당/상태관리/스케줄링

Memory Manager

물리/캐시/가상메모리 관리

Communication Manager

Inter Process Communication 메커니즘 제공

Supervisor

하드웨어/소프트웨어 인터럽트 및 예외사항 관리

  •  Process/Thread Manager 는 스케줄링 시 Context Switching 지원/관리

 

    나. Monolithic Kernel 과의 비교

구분

Monolithic Kernel

Micro Kernel

특징

  • 커널 크기 비대
  • 운영체제 모든 기능 구현
  • 커널 크기 최소화
  • 운영체제 최소 기능만 구현

장점

  • 파일시스템, 네트워크 프로토콜 스택, 표준 유닉스 인터페이스 등 모든 OS 상부 기능 포함
  • 사용 용이성(OS 구조에 대한 사용자 투명성 제공)
  • 하드웨어 종속성 최소화로 우수한 확장성 및 이식성
  • 커널 운용 시 메모리 자원 소모 최적화 가능

단점

  • 불필요한 OS 기능(서비스 모듈)도 함께 로딩되므로 메모리 자원 소모 과다
  • 하드웨어 종속성으로 인해 확장성 및 이식성 제한
  • 커널과 서비스 모률 간 자료 교환을 위한 Context Switching 오버헤드가 성능에 악영향
  • 원활한 활용을 위해 OS 구조에 대한 지식 필요

 

III. Monolithic Kernel 및 마이크로 커널 단점 극복을 위한 하이브리드 커널
    가. 커널 개념도 비교

Monolithic Kernel

Micro Kernel

Hybrid Kernel

Kernel

 

Software

Kernel

 

Servers  Software

Servers  Kernel

 

Software

  • Software : User Application
  • Servers : Kernel 및 User Application에 독립적인 서비스 모듈

    나. 상용 운영체제로서의 하이브리드 커널

  • 마이크로 커널의 구조적 성능저하 현상으로 인하여, 상용운영체제에서 사용이 곤란
  • Monolithic Kernel의 사용자 편이성과 마이크로 커널의 확장/이식성의 장점을 모두 수용하고자 함
  • 유닉스는 전통적으로 Monolithic Kernel 구조, 현재 대부분의 상용 유닉스 운영체제에 동적 설정 가능 커널 파라미터와 모듈의 개수가 증가하는 추세이며, 이는 마이크로 커널의 동적 재구성 가 능 특성을 수용하는 것임
  • 마이크로 커널 구조는 현재 임베디드 실시간 운영체제에서 많이 사용

댓글