기존의 운영체제는 Layered Architecture 로 되어 있다.
Layer 구조의 장점은 유지관리가 편리하며 개발시 자신의 Layer 부분만 처리하면 되므로 개발효율
상승을 기대할 수 있다.
하지만 Layer의 설계 및 정의가 어렵고 처음 잘못 설계하게 되면 유지보수가 어렵게 된다.
Layer 를 추가하게 되면 기존 Layer 와의 연계 및 유지보수가 힘들다.
또한 Layer가 늘어나게 되면 System Overhead 가 늘어나게 된다.
이러한 Layer 구조의 단점을 보완하기 위해 나온 개념이 Micro Kernel 이다.
이 개념은 운영 체제(OS)의 기본적인 기능을 Kernel 에 구현하고 (Process, Memory, 동기화 기능)
나머지 기능은 모두 Server 형태로 User Mode 에 올린다.
Micro Kernel 에는 처리 제어나 장치 구동기 등 H/W에 의존하는 기능, 실시간 처리 및 동기화 기능
(Mutex, IPC, 세마포어) 을 포함하게 된다.
장점은 기능의 추가가 쉽고 디버깅이 용이하다.
Server 오류시 Kernel에 영향을 주지 않고 그 Server 만 멈추게 되므로 시스템 유지에 장점이 있고
또한 각종 처리기에 용이하게 이식할 수 있다는 장점이 있다.
그러나 단점은 Application 의 Service Request 시 용량이 크거나 자주 Request 되면 Overhead 가
증가하게 된다.
초창기에 Mach Os에서 사용하고 있으며 현재는 Apple Mac OS에서 사용하고 있다.
또한 MS의 Windows 의 경우에는 Layered Architecture + Micro Kernel을 혼용하고 있다.
일반 커널과 마이크로 커널의 계층구조
댓글
댓글 쓰기