CS/OS

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

장그래 2021. 2. 19. 17:29
반응형

Operating System Structure

  • 운영체제와 같은 크고 복잡한 소프트웨어는 잘 동작하고, 쉽게 변경할 수 있도록 구조를 만드는 것이 매우 중요
  • 운영체제를 구성하는 구조들은 여러 가지가 있다.

모놀로식 커널 (Monolithic kernel)

  • 단일형 커널
  • cpu스케쥴링, 메모리 관리 등 운영체제의 일반적인 기능들이 전부 커널이라는 하나의 프로그램에 담겨있는 구조 (전혀 계층적이지 않음)
  • 계층적인 구조보다 성능적인 부분에서는 우위를 보이나, 구현과 수정이 어렵다.
  • 장점 : 성능이 더 좋다.
  • 단점 : 수정과 구현이 어려움 (유지보수가 어렵다)
  •  

계층적인 접근 (Layered Apporach)

  • 계층적인 구조라면 커널 자체도 여러개의 계층으로 이루어져있어야 함.
  • 전형적인 하나의 계층은 자신의 자료구조와 코드, 자신의 아래 계층의 함수에 대한 호출로 이루어짐
  • 각 계층은 자신과 자신의 하위계층의 함수를 호출할 수 있다.
  • 상위 계층의 입장에서는 하위 계층의 구조와 코드는 알 필요 없고 어떤 역할을 하는지만 알면 된다.
  • 각 layer에 어떤 기능을 넣을 것인지 잘 설계해야 함.
  • 장점 : 구현과 디버깅이 간단함 -> 각 계층은 단지 자신의 하위계층의 서비스와 기능만을 사용하기 때문에 검증과 디버깅이 매우 쉬워짐
  • ex) layer1은 layer0만 신경 쓰고 개발하면 된다.
  • 단점 : 하나의 동작이 이루어지는데 여러 계층을 거치다 보니 다른 구조보다 효율성이 떨어짐
  •  

마이크로커널 시스템 구조 (Microkernel System Structure)

  • 모놀로식 커널이 점점 커지게 되자 카네기멜런 대학 연구자들이 마이크로커널을 기반으로한 마크(Mach)를 개발함
  • 마이크로커널은 기존 모놀로식 커널에 있었던 일부 기능을 떼어내어 사용자 수준 프로그램으로 구현하고, 커널에는 아주 기본적인 기능만 넣은 작은 형태의 커널을 의미함.
  • 프로세스 관리, 메모리 관리, 프로세스 간 통신 -> 이 3가지 기능만 마크의 커널에 있음 (모든 마이크로커널이 그런 것은 아님)
  • 메시지 전달 방식을 사용해서 (message passing) 프로그램을 동작하게 함.
  • 장점: 운영체제의 확장이 쉽다(새로 추가되는 서비스는 사용자 공간에 주면 됨), 보안성이나 신뢰성이 높음(대부분 사용자 공간에 주기 때문에)
  • 단점: 모놀리식 커널에 비해 성능이 떨어짐(마이크로커널은 수차례의 메시지 전달 과정이 필요하기 때문에)

커널 모듈 (modules)(loadable kernel modules)

  • 커널의 핵심적인 기능 외에 동적으로 서비스들이 추가될 수 있는 형태
  • 예를 들어 특정한 파일 시스템을 커널 모듈로 구현하면, 파일 시스템은 커널 부팅과 동시에 동작하지 않고, 필요할 때 동작하는 방식
  • 장점 : 필요한 해당 기능들을 수정할 때 필요한 기능들만 수정해서 컴파일하면 됨

하이브리드 시스템 (Hybrid Systems)

  • 오늘날의 운영체제들은 위와 같은 구조를 명확하게 사용하지 않고, 성능, 보안, 편의성을 고려해서 여러 방식을 혼용해서 사용함

출처 - 공룡 책 (Operating System Concepts)


반응형