CS/운영체제

모노리틱 커널, 마이크로 커널, 하이퍼바이저

nolzaheo 2021. 8. 25. 23:55
728x90

가상화

컴퓨팅에 필요한 물리적 자원을 복제하는 기술

물리적 자원을 복제하여 새로운 가상의 자원을 생성하는 행위

물리적 자원: 어떠한 컴퓨터를 구동하기 위해 반드시 필요한 CPU나 메모리, 디스크, 네트워크 등의 시스템 자원

 

커널

시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자

메모리에 항상 상주하고 있는 프로그램(Memory Resident)

자원관리, 메모리관리, 장치관리

 

1. 자원 관리

커널은 주소공간과 그 안의 자원에 대한 액세스를 중재할 수 있는 보호 매커니즘을 정의함.

또한 프로세스 간 통신과 문맥교환을 담당함.

-프로세서 생성 및 소멸

-프로세서 간 통신

-CPU 스케쥴링 동기화

-지한된 자원에 대한 다중 프로세서의 효율적인 관리기법 제공

 

2. 메모리 관리

커널은 시스템 메모리에 대한 전체 엑세스 권한을 갖고있음

-가상메모리 관리

-메모리 하드웨어의 효율적인 관리

-파일시스템 관리

-가상 시스템에 의한 여러 파일 시스템 타입 지원

-파일, 디렉토리 관리 및 블록 입출력을 위한 버퍼 캐시 관리

 

3. 장치 관리

OS가 하드웨어 장치와 상호작용 할 수 있도록 해줌

-입출력 요청 관리

-입출력 요청 작업의 스케쥴링

-주변장치와 메모리간의 자료전송

-입출력 제어 관리

-인터럽트 요청 및 관리

 

 

모노리틱 커널

Application을 제외한 모든 system 관련 기능들(VFS, IPC, Filesystem 등등)을 커널이 관리

시스템 기능들(VFS, IPC, Device driver)은 커널위의 서버의 형태로 존재한다.

커널에서 제공할 수 있는 다양한 서비스를 한 덩어리로 묶은 형태의 커널

모든 것이 같은 주소공간의 커널 모드에서 실행됨

장점: 각 컴포넌트 간의 커뮤니케이션이 효율적임. 성능이 좋음

마이크로 커널 방식의 OS에 비해, 운영 체제의 기능의 거의 모든 것이 단일 메모리 공간에서 행해지고, 동일한 프로세스를 처리할 때 사용되는 문맥 교환이나 프로세스 간 통신 등에 의한 과부하는 상대적으로 적어서, 실질적인 성능 면에서 유리하다.

단점: 디바이스 드라이버를 추가/삭제 하기 위해서는 커널을 재빌드해야한다. 한 서비스가 죽으면 전체 시스템이 죽는다.

유지보수가 힘듦

ex)Unix, Linux

 

마이크로 커널

프로세스/메모리 관리 등 핵심 기능만을 커널에 구현하고 나머지 기능은 독립적인 서비스 모듈로 구현하여 제공

OS에 추가되어야 하는 다양한 매커니즘을 최소한으로 제공하는 초소형 커널

필요한 몇 가지의 기능들을 제외하고는 서버라는 개념으로 유저 모드에 올라와 있음

모든 서버 프로세스가 다른 주소 공간으로 구분되기 때문에 모노리틱 커널에서와 같이 함수를 직접 호출하는 일은 불가능하다. 대신 마이크로 커널에서는 메시지 전달을 통해 통신한다. 프로세스간 통신(IPC) 체계가 시스템에 구축되어있고 여러 프로세스가 서로 IPC를 통해 메시지를 보내 서비스를 호출하는 방식으로 통신한다.
장점: 하나의 서비스가 죽더라도 커널 전체가 패닉되지 않음. --> 리얼타임성이 중요한 임베디드 시스템에서 주로 사용

단점: 별도의 주소공간에 OS 서비스와 커널이 존재하기 때문에 문맥 교환이나 프로세스 간 통신 등에 의한 과부하가 발생할 확률이 높다.

ex)MacOs X, Windows NT

 

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

 

하이퍼바이저

호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼

native(또는 bare-metal), hosted 두 가지 타입 존재

1.native

운영 체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며 게스트 운영 체제는 하드웨어 위에서 2번째 수준으로 실행된다. 

ex) Xen, VMware ESX Server, Hyper-v, KVM...

 

2.hosted

하이퍼바이저는 일반 프로그램과 같이 호스트 운영 체제에서 실행되며 VM 내부에서 동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행된다. 

ex) VirtualBox, VMware Server, VMware Workstation, VMware Fusion...

 

두 타입의 차이점 : native 타입의 경우 호스트 운영체제를 통하지 않지만 hosted 타입의 경우 호스트 운영체제를 통한다.

 

하이퍼바이저 native 타입과 hosted 타입

 

🔗참고 링크

 

모놀리식(Monolithic) kernel과 마이크로(Micro) 커널

커널은 크게 커널 내에 넣는 feature의 양에 따라 모놀리식(Monolithic) 커널과 마이크로(Micro) 커널로 나눌 수 있다. 위 구조를 이해 할 때 통념을 좀 깨야 할 필요가 있었다. 나는 너무도 당연히 kernel

selfish-developer.com

 

 

하이퍼바이저란 무엇인가요 - Alibaba Cloud 기술 자료

하이퍼바이저는 물리적 하드웨어에 설치된 소프트웨어 계층으로, 물리적 머신을 다수의 가상 머신으로 분할할 수 있도록 해줍니다.

www.alibabacloud.com

 

 

Windows OS model : Microkernel or Monolithic kernel?

1. Operating system model : kernel mode and user mode  대부분의 운영체제에서와 마찬가지로 Windows 또한 kernel 모드와 user 모드로 나뉘어진 OS 모델을 갖추고 있다.  kernel 모드는 모든 시스템 메모리와..

bluese05.tistory.com

 

728x90

'CS > 운영체제' 카테고리의 다른 글

User Mode, Kernel Mode, Interrupt  (0) 2021.08.27
Process Abstraction / 프로세스 추상화  (0) 2021.08.27
OS , 커널 정의  (0) 2021.08.27