Monolithic Kernel
커널의 모든 서비스가 같은 주소공간에 위치한다. Unix는 monolithic 구조이다.
프로세스의 공간은 (일반적으로) 하위 주소의 user space와 상위 주소의 kernel space로 구분할 수 있다.
프로세스의 모든 공간은 서로 독립적인 공간이다. 하지만 monolithic 구조에서 할당받은 커널 공간이 가리키는 주소는 물리적으로 같은 주소를 가리키게 된다.
이런 방식으로 서로 커널 서비스를 공유하게 되는 것이다. 이를 도식화하면 밑에 그림처런 나타낼 수 있다.
monolithic 모두 같은 커널을 공유하기에 시스템콜과 커널 서비스 간의 오버헤드가 적다.
하지만 모든 서비스가 하나의 코드를 공유하는 만큼 일부분의 오류가 전체에 영향을 미칠 수 있다. 때문에 유지보수가 어렵다
Micro Kernel
기능별로 마이크로 서비스로 개발하여 많은 서비스를 커널 모드가 아닌 유저 모드에서 처리할 수 있는 커널 시스템이다.
커널에는 필수적인 최소의 기능들만 남겨둔다. 나머지 분리된 모듈을 서버라고 하고, 서버들은 하나의 프로세스로 유저 모드에서 구동된다.
monolithic에 비해 커널이 가볍고, 의존도가 확실히 내려가기 때문에 유지 보수에 용이하다.
하지만 서버 간 통신이 필요하기 때문에 monolithic kernel 보다 낮은 성능을 보인다.
Hypervisor
d가상화된 컴퓨터 하드웨어 자원을 제공하기 위한 관리 계층
단일한 컴퓨터에서 여러 가상 머신을 운용할 수 있게 물리적인 컴퓨팅 리소스 자원을 분배하는 소프트웨어 이다.
게스트 OS와 하드웨어 사이에 위치한다. 각 게스트 OS는 서로의 존재를 알지 못한다.
하이퍼바이저를 통해 내 컴퓨터와 다른 인스트럭션 셋을 가진, 이를테면 RISC 명령어 set을 가진 컴퓨터에서 CISC 인스트럭션을 실행할 수도 있다.
'운영체제' 카테고리의 다른 글
[OS4] Context Switch, Process Creation, Copy On Write (0) | 2024.03.12 |
---|---|
[OS4] Process, PCB (0) | 2024.03.04 |
[OS3] Kernel Structure, Layering, Modularity, System call (0) | 2024.02.23 |
[OS2] Multi programming, Multi Tasking (0) | 2024.02.21 |
[OS1] Abstraction, Policy (0) | 2024.02.20 |