운영체제 (4) - Monolithic kernel, Micro kernel, Virtualization

@JHSHIN·2023년 3월 16일
0
post-thumbnail

운영체제 수업을 수강하며 정리한 내용을 작성하려고 합니다.

Monolithic kernel의 장단점

장점

  • 어플리케이션과 모든 커널 서비스가 같은 주소 공간에 위치하기 때문에, 시스템 콜 및 커널 서비스 간의 데이터 전달 시 오버헤드가 적음(성능 우수)

단점

  • 모든 커널 서비스들이 하나의 바이너리로 이루어져 있기 때문에 일부분의 수정이 전체에 영향을 미침
  • 각 모듈이 유기적으로 연결되어 있기 때문에 커널 크기가 커질수록 유지 보수가 어려움
  • 한 모듈의 버그가 시스템 전체에 영향을 끼침

Microkernel

  • 커널 서비스를 기능에 따라 모듈화하여 각각 독립된 주소 공간에서 실행
    • 이러한 모듈을 “서버”라 하며, 서버들은 독립된 프로세스로 구현
  • 커널의 동작은 서버들간의 통신(message passing)으로 수행
  • (마이크로) 커널 자체는 서버들 간의 통신 (IPC), 어플리케이션의 서비스 콜 전달과 같은 단순한 기능만을 제공

Microkernel 장단점

장점

  • 각 커널 서비스가 따로 구현되어 있기 때문에 서로 간의 의존성이 낮음
    • monolithic 커널 보다 독립적인 개발이 가능
    • 커널의 개발 및 유지 보수가 상대적으로 용이
  • 커널 서비스의 간단한 시작/종료 가능
    • 불필요한 서비스의 서버는 종료
    • 메모리 및 CPU utilization을 효과적으로 관리 및 확보 가능
  • 이론적으로 micro 커널이 monolithic보다 안정적
    • 문제(오류)있는 서버만 재시작하여 해결
  • 각 서버별로 주소 공간이 별도로 존재 → 기능별 독립 실행 및 검증이 가능
    • 기능별 검증이 중요한 분야에서 사용하기에 적합
    • 임베디드 로봇 산업, 의료 컴퓨터 분야

단점

  • Monolithic 커널보다 낮은 성능을 보임
    • 독립된 서버들 간의 통신 및 context switching
    • L4 마이크로커널은 하드웨어를 활용하여 성능 개선

Monolithic vs Microkernel

블록 I/O 처리 (시스템콜) 비교

  • Monolithic : 시스템콜이 들어오면 단순히 함수를 호출하는 과정을 통해 I/O 처리
  • Micro : 시스템콜이 들어오면 하나의 개별 서버들을 upcall하면서 커널이 프로세스를 호출

→ Monolithic kernel의 성능이 압도적

Hybrid structures

💡 대다수의 modern operating system은 정확히 특정 모델을 따르는 것이 아니라, Hybrid 구조를 사용

Linux

  • 일반적으로 커널 전체가 하나의 주소 공간을 사용하는 monolithic kernel.
  • 기능의 확장을 위한 동적 모듈 제공 (loadable kernel module)

Windows

  • Monolithic 구조가 기본이지만, 특정 서브 시스템은 micro kernel 구조처럼 server 사
    가능

Mac OS X

  • 시초는 Mach Microkernel 기반으로, 현재 대부분 BSD UNIX(monolithic 커널)의 구성 요소 사용
  • Loadable kernel module도 사용 가능

가상화 (virtualization)

💡 Host OS(물리 컴퓨터의 OS) ↔ Guest OS(가상 인스턴스 OS, image라고도 함)

  • 하드웨어와 OS 1:1 관계 → 가상화 → 1:多 관계를 가능하게 하기 위함(하드웨어 하나에 OS 여러 개 사용)
  • 다수 Guest OS들 존재, Guest OS는 Hypervisor를 거쳐 하드웨어 사용
    • Hypervisor는 1960년대부터 존재하였으나 성능 저하로 활용되지 못함
    • Xen의 등장(2003)으로 실질적으로 이용이 가능해짐
    • 클라우드의 enabling technology

  • virtualbox가 Hypervisor의 기능을 함
  • native 가상화(Type 1 hypervisor) vs hosted 가상화(Type 2 hypervisor)
profile
We Need Better UX

0개의 댓글