Simple structure
- monolithic 구조 - 많은 기능들이 하나의 계층으로 구현됨
- 많은 상용 운영체제가 잘 정의된 구조를 갖지 않음
Layered strcuture
- 운영체제가 여러 계층으로 구분됨
- 각 계층은 하위 계층 위에 구축됨
Microkernel
- 필수적이 아닌 구성 요소를 커널에서 모두 제거하고 시스템 및 사용자 수준 프로그램으로 구현함
Simple Structure - MS-DOS
- 최소 공간에 최대 기능을 제공하도록 작성 -> 모듈들로 구분되지 않음
- 인터페이스와 functionality 계층이 잘 분리되어 있지 않음 -> 운영체제를 거치지않고 BIOS를 사용하여 입출력 가능
- NO dual mode, No HW protection -> 악의적이거나 오류가 있는 프로그램에 취약함
Simple Structure - UNIX
- 초기에 하드웨어 기능에 제한이 있었으며 제한된 구조를 가짐
- Kernel과 System Program으로 구성
- Kernel은 여러 인터페이스와 장치 드라이버로 분리되어 확장됨
- the system-call interface 아래와 physical hardware 위의 모든 부분
- 한 계층에서 많은 기능을 제공 (file system, cpu scheduling, memory management ...)
monolithic 구조의 장단점
장점 : 성능(커널 내부 통신 오버헤드가 거의 없음)
단점 : 구현과 유지보수가 어려움
Layered Structure
- 최하위 계층 (layer 0) = 하드웨어
- 최상위 계층 (layer N) = 사용자 인터페이스
- 각 계층은 하위계층에서 제공하는 함수와 서비스만 사용함
장점 : 구현과 디버깅이 간단함
- 하위계층의 연산이 어떻게 (how) 구현 되었는지 알 필요가 없음
- 하위계층 연산이 무슨(what) 동작을 하는 지만 알면 됨
단점
- 각 계층을 적절히 정의하는 것이 어렵고, 명확하지 않을 수 있음
- 덜 효율적 - 계층별 시스템 호출 오버헤드
- 이러한 제한점으로 최근에 이 방법에 대한 부정적 평가 -> 많은 기능을 가진 적은 수의 계층으로 설계
Micro Kernels
- 커널의 필수적이 아닌 많은 부분을 사용자 공간으로 이동 -> small kernel (커널이 확장되면서 관리하기가 어려워짐)
- 기본 기능 : 사용자 모듈과 사용자 공간에서 수행하는 서비스 간에 통신 기능 제공 (message passing 사용)
장점
- 확장이 용이 - 새로운 서비스는 사용자 공간에 추가
- 운영체제 이식이 용이 - 작은 커널이므로 변경 부분이 적음
- 높은 신뢰성과 보안성
> 커널 모드에서 수행되는 코드가 적고 대부분의 서비스는 사용자 프로세스로 실행되기 때문 -> 서비스가 잘못되더라도 다른 부분에 영향이 없음
단점
- 시스템 함수 오버헤드 (사용자 공간과 커널 공간 간의 통신 오버헤드) -> 해결 : 모듈
Modules : a set of core components + loadable kernel modules
loadable kernel modules
- 부팅 또는 실행시간 동안 동적으로 적재되어 커널 기능을 확장함
- 대부분의 현대 운영체제에서 구현됨
특징
- 각 core component가 분리됨
- 알려진 인터페이스를 통하여 다른 component/module과 통신을 함
- layered 구조와 유사하지만 더 유연성이 있음
- Microkernel과 유사하지만 더 효율적
Modules - loadable kernel modules을 Kernel mode에서 실행
MicroKerenl - User mode에서 실행
OS Kernel
2.9 운영체제 생성 (0) | 2020.04.17 |
---|---|
2.8 운영체제 디버깅 (0) | 2020.04.17 |
2.6 운영체제의 설계와 구현 (0) | 2020.04.04 |
2.5 시스템 프로그램 (0) | 2020.04.04 |
2.4 시스템 호출의 유형 (0) | 2020.04.04 |
댓글 영역