상세 컨텐츠

본문 제목

2.7 운영체제 구조

Computer Science/OS Concepts

by RACC8N 2020. 4. 17. 14:44

본문

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

'Computer Science > OS Concepts' 카테고리의 다른 글

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

관련글 더보기

댓글 영역