운영체제

[OS/운영체제] OS 구조 (OS Structure)

4Legs 2020. 11. 3. 20:44

Monolithic Structure (단일 구조)

Monolithic Structure

복잡하고 모듈화된 OS구조의 반대 개념이다.

어플리케이션 및 모든 커널 서비스들이 같은 주소 공간에 위치하기 때문에, 각 컴포넌트 간의 커뮤니케이션이 비교적 효율적이다.

하지만 어느 한 부분이 수정되면 전체를 다시 컴파일 해야하고, 한 컴포넌트에서 발생한 문제가 전제 시스템의 문제가 될 가능성이 크다.

 

Layered Approach (계층 구조)

Layered Approach

Monolithic의 단점을 보완할 수 있는 계층 구조이다.

상위 계층은 하위 계층을 호출되고, 하위 계층은 상위 계층에게 호출되어 정보를 제공한다.

각 계층별로 구분되어 있기 때문에 Monolithic 구조에 비해 어느 한 부분에 발생한 문제를 해결하기 비교적 쉽다. (그 계층에 대해서만 수정 및 재컴파일 하면 되기 때문)

하지만, 개념적으로 어디서부터 어디까지를 한 계층으로 둘 것인지 정의하는 것이 애매하고, 계층 간 정보를 주고받는 과정에서 발생하는 오버헤드로 효율은 비교적 낮은 편이다.

 

Microkernels

마이크로커널의 대략적 구조

단일 구조인 UNIX가 점점 확장되면서, 커널이 점점 더 커지고 관리하기가 어려워지기 시작했다.

이에 따라 커널에서 중요하지 않은 구성 요소는 제거하여 사용자 수준 프로그램으로 구현한 마이크로커널 형태의 접근이 생겨났다. 커널의 핵심 기능들만 유지시키고, 다른 기능들은 User-mode에서 동작하도록 상위 계층으로 올려 구현한다.

위 그림에서 CPU 스케줄링, 메모리 관리 등의 핵심 기능은 마이크로커널 내에 유지되고, 파일 시스템, 장치 드라이버 등의 기능은 User-mode 프로그램으로 올라간 것을 볼 수 있다. 이로써 커널의 규모를 축소시킨 구조이다.

커널의 확장성과 이식성이 증대하지만, 성능에 대한 영향이 단점으로 작용할 수 있다.

 

 

 

※ 본 게시글은 『Operating System Concepts』 를 참고하여 작성되었습니다.