반응형
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)
반응형
'CS > OS' 카테고리의 다른 글
[OS]프로세스 연산 (Operations on Processes ), 시스템 콜(System Call) (0) | 2021.04.30 |
---|---|
[OS]프로세스(Process)란? (0) | 2021.04.29 |
[OS]멀티프로그래밍(Multiprogramming) (0) | 2021.04.27 |
[OS]캐싱(Caching) 이란? (0) | 2021.02.15 |
운영체제 (OS)(Operating System) 란? (0) | 2021.02.12 |