[운영체제] Monolithic Kernel &MonolithicKernel

xxQwer.5555김승환·2023년 4월 19일
0

운영체제

목록 보기
7/7
post-thumbnail

Monolithic Kernel

단일체 커널은 운영 체네의 커널 구조 중 하나로, 모든 기능을 하나의 단일체로 구성하여
운영 체제의 기능을 제공하는 방식입니다.

단일체 커널은 프로세스 관리, 메모리 관리,파일 시스템, 네트워크 스택, 장치드라이버 등
모든 운영체제 기능을 하나의 커널 내에 통합하여 구현합니다. 이를
통해 운영체제의 처리 속도가 빨라지고 시스템 자원의 효율적인 사용이 가능해집니다.
또한, 커널 내에서의 자원 공유가 용이하요 응용 프로그램 간의 통신이 빠르고 간단해집니다.

하지만, 단일체 커널은 모든 기능을 하나의 모듈로 구성하기 대문에 코드의 복잡도가 증가하고,
버그 발생 가능성이 높아집니다. 또한, 커널이 동작하지 않을 경우 시스템 전체가 다운되는
경우가 발생할 수 있습니다. 이러한 이유로 대부분의 운영체제는 모듈화된 구조로 설계되어 있으며, 단일체 커널은 일부 특수한 운영체제에서만 사용됩니다.

Microkernel

운영 체제의 커널 구조 중 하나로, 운영 체제 기능 중

일부만 커널 내부에 구현하고 나머지 기능은 사용자 레벨(User Level)의 서비스 프로세스에서 실행하도록 설계된 커널입니다.

마이크로 커널은 커널 내부에는 최소한의 기능만을 구현하고 다른 기능은 사용자레벨에서 실행하기 때문에 코드의 크기가 작아지고,

코드의 복잡도와 오류 발생 가능성이 낮아집니다. 또한, 모듈화된 구조를 갖기 때문에 커널에서 오류가 발생해도 시스템이 전체적으로 다운되는 것을 방지할 수 있습니다. 또한, 사용자 레벨에서 실행되는 서비스 프로세스가 커널과 직접적으로 통신할 수 있는 인터페이스를 제공하므로, 시스템 유지 보수 및 업그레이드가 용이해집니다.

but, 마이크로 커널은 시스템 콜의 오버헤드가 크기 때문에 처리 속도가 느려질 수 있습니다.
또한, 사용자 레벨과 커널 간의 인터페이스가 많아지면서 커널 내부에서 발생하는 데이터 전달 등의 부가적인 오버헤드가 증가할 수 있습니다. 이러한 이유로 마이크로 커널은 단일체 커널에 비해 처리 속도가 느리지만, 코드의 안정성과 유지 보수성이 높아지는 장점이 있습니다.

Microkernel의 장점

  1. 안정성 : 마이크로 커널은 사용자 레벨에서 실행되는 서비스 프로세스와 커널 간에 경계가 명확하므로, 시스템 콜이 실패하거나 서시브 프로세스에서 발생하는 등으로 인한 시스템 전체의 다운을 방지할 수 있습니다.

  2. 유연성: 마이크로 커널은 필요에 따라 서비스 프로세스를 추가하거나 제거하여 운영 체제 기능을 확장하거나 축소할 수 있습니다. 또한, 각 서비스 프로세스는 독립적으로 실행되므로, 개별적으로 업그레이드나 유지 보수가 가능합니다.

  3. 보안성: 마이크로 커널은 보안을 강화할 수 있는 많은 기능을 제공합니다. 예를 들어, 사용자 레벨에서 실행되는 서비스 프로세스와 커널 간의 인터페이스를 제한 하거나, 서비스 프로세스 간의 상호작용을 제한하는 등의 기능을 제공할 수 있습니다.

  4. 이식성: 마이크로 커널은 사용자 레벨에서 실행되는 서비스 프로세스와 커널 간에 명확한 경계를 유지하므로, 다른 하드웨어나 운영체제에 대한 이식성이 높습니다.

5.유지 보수성: 마이크로 커널은 각 서비스 프로세스가 독립적으로 실행되므로, 개별적으로 유지 보수가 가능합니다. 이는 시스템 전체의 유지 보수성을 높여줍니다.

-단일체 커널은 상호 의존성이 높기 때문에 기능상의 작은 결함이 전체에 큰 영향을 줄 수 있지만 마이크로 커널은 한 부분에 발생한 문제가 시스템 전체에 영향을 주지 않는다.

매우 크고 복잡한 실시간 시스템에는 단일체 커널은 적합하지 않지만 마이크로 커널은 커널 내부에서 발생 지연이 작고 예측이 가능하고 실시간 시스템에 활용하기 좋다

profile
ps, cs blog.... https://github.com/lixxce5017/Algoritm_Weekly_Baekjoon

0개의 댓글