Passing parameters in system calls
- 1. register에 parameter 전달 : parameter 가 6개 이하일 경우 그대로 전달
- 2. regester에 block 전달 : parameter가 6개 초과일 경우 주소값 block을 전달
Micro-kernel-based-approach
- Monolitic kernel과 반대되는 개념
- kernel에 process manager 등 핵심만 존재
- 많은 기능들을 user space에서 동작되도록 설계
- kernel 확장이 쉽다
- 새로운 구조를 넣기 쉽다
- 신뢰도가 상승한다 (버그 감소)
- overhead, message passing이 빈번하게 발생한다
Simple structure
- MS-DOS때 쓰인 방식
- user, kernel이 아닌 single mode 방식 (protection이 감소)
Layered approach
- 계층적 구조
- Top : User Interface
- Bottom : Hardware
- Each layer is implemented with only those operations provided by lower-level-layers
- 각 계층은 system call을 통한 kernel 에 의해 구현된다 : 구조와 디버깅이 간단해진다
- 하부 layer에서 제공되는 operation을 통해서 접근한다
Modules
- 각 기능들을 module 별로 나눈다
- 각 module들은 kernel에 필요할 때 loadable이 가능하다
- 필요없는 자원낭비를 줄이게 된다
- dynamic loading, unloading : insmod(load), rmmod(unload)를 통해 동작
- Device Driver의 경우 insmod를 통해 kernel에 추가 설치가 되는 원리
Virtual machine
- One Hardware 가지고 several OS를 concurrently하게 동작
- Virtualization Layer를 통해 각 OS는 Virtual Machine을 지니게 된다 (가상의 HW)
- Virtualization Layer - Virtual machine - OS 가 동작되는 구조
- host system 입장에서는 Virtual Machine 위에서 동작되는 kernel은 User Mode 이다
System boot
- bootloader : loading the kernel 역할을 수행
- single-step : bootloader(ROM)에서 kernel을 수행 - OS(RAM)
- two-step : bootloader(ROM) - BootBlock(Disk)에서 kernel을 수행 - OS(RAM)
Chapter 3
Process
- a Program in execution : 현재 수행중인 프로그램 = job, task, process
Process address space
- virsual address이다