Summary
- 일반적인 OS는 아주 큰 프로그램이다.
- 다양한 방법의 OS 구조
• 단일 구조
-> 단순 구조(MS-DOS), 더 복잡한 구조(UNIX)
• 레이어 구조
• 마이크로커널 ex) Mach
• 커널의 모듈화
1. Systems programs
2. The kernel
Summary
- 초기의 UNIX는 제한된 구조를 가지고 있었다. (hardware 기능문제)
- UNIX는 2개의 부분으로 나뉘어진다.
1. Systems programs
2. The kernel
• 아래에 system-call interface, 위에 physical hardware으로 구성된다.
• file system, CPU scheduling, memory management 등 여러 OS 기능을 제공한다.
• 이 많은 기능들을 kernel 한 계층에서 모두 담당하고 있다.
simplicity of construction and debugging
Summary
- OS는 몇개의 계층으로 나뉘어져 있다.
제일 아래층(0층)은 하드웨어이고, 가장 높은 층(N층)은 UI이다.- 모듈화를 통해 각 계층은 하위 계층의 기능(작업) 및 서비스만 사용하도록 선택된다.
Advantage
구현과 디버깅이 간단하다.
Summary
- kernel을 최대한 가볍게 만든다.
- 가장 핵심적인 OS 기능만을 (kernel mode에서 동작하는) kernel에 담고 그 외 나머지는 user space로 넘긴다.
Advantage
- microkernel을 확장하기 편하다.
- OS를 다른 구조에 적용시키기 편하다.
- 신뢰도가 높다. (kernel mode에서 더 적은 코드가 돌아가니까)
- 보안이 높다.
Disadvantage
- user space에서 kernelspace로의 communication에 overhead가 생길 수 있다.
overhead
오버헤드(overhead)는 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.
• Uses object-oriented approach
• Each core component is separate
• Each talks to the others over known interfaces
• Each is loadable as needed within the kernel
Summary
- 현대의 많은 OS들은 load 가능한 kernel module(LKM)을 구현한다
- kernel은 핵심 요소들을 가지고 있으며 부팅 시간이나 실행 시간 중에 추가 서비스에 동적으로 link된다.
• 객체 지향 접근 방식을 사용한다.
• 각 핵심구성 요소들은 분리되어 있다.
• 각자가 알려진 interface를 통해 다른 사람과 대화한다.
• kernel 내에서 필요에 따라 각각 load 가능
- 전반적으로 layer와 비슷하지만, 조금 더 유연하게 사용할 수 있다.
The Modular kernel approach is similar to the Layered
approach
• The modular kernel approach requires subsystems to interact with each other through carefully constructed interfaces
However, the Modular kernel approach differ from the
Layered approach
• The layered kernel imposes a strict ordering of subsystems such that
subsystems at the lower layers are not allowed to invoke operations
corresponding to the upper-layer subsystems.
• There are no such restrictions in the modular-kernel approach,
wherein modules are free to invoke each other without any
constraints.
Summary
Modular kernel과 Layered structure의 공통점
- Modular kernel은 Layered structure과 접근성이 비슷하다.
- Modular kernel의 접근 방식은 세심하게 구성된 interface를 통해 하위 시스템들이 서로 상호작용할 것을 요구한다.
Modular kernel과 Layered structure의 차이점
- Layered structure는 하위 계층의 하위 시스템이 상위 계층의 하위 시스템에 해당하는 작업을 호출할 수 없도록 하기 위해 하위 시스템에 대해 엄격한 순서를 부과한다.
- Modular kernel는 그러한 제한 없이 서로를 자유롭게 호출할 수 있다.
dictionary
Monolithic : 단일
port : 적용하다
approach : 접근