2-7장. 운영체제 구조

기타/[운영체제]

2019. 3. 22. 13:20

[운영체제 2-7장. 운영체제 구조]

: 현대의 운영체제는 크고 복잡한 시스템이다.

: 여러가지 접근방법이 있음




[간단한 구조(Simple Structure)]


<MS-DOS>

: 최소의 공간에 최대의 기능들을 제공하도록 구현


<구조>


: 인터페이스와 기능 계층이 잘 분리되어 있지 않다. ex)응용프로그램이 디스플레이와 디스크 드라이브에 직접 쓰기 가능

=> 오류에 취약, 사용자 프로그램 고장나면 시스템 전체 고장




UNIX(최초형태)> 

: 마찬가지로 하드웨어 기능에 의해 제한 / 본격적 다중 사용자를 위한 OS


<구성 요소>


- 시스템 프로그램

- 커널 : 시스템 호출을 통해 여러 운영체제 기능을 제공. 초기에는 이 모든게 한개의 계층으로 결합되어 있어서 구현과 유지보수에 어려웟음

=> 그래도 성능면에선 우수(오버헤드 없음)    +)현재는 커널을 여러개로 분리한 형태.









[계층적 접근(Layered approach)]

:운영체제는 적절한 하드웨어 지원이 있으면, 보다 작고 적절한 조각으로 분할 가능 => 응용에 대해 훨씬 더 큰 제어 유지가능


- 이와 같은 모듈화(modularity)를 통해 운영체제가 여러층으로 나뉜다. 



: 최하층 : 하드웨어 / 최상층 : 사용자 인터페이스 / 안쪽 layer기반으로 다음 layer 실행.








[마이크로커널(microkernel)]

: 대부분의 기능을 사용자공간에 넣고, 핵심기능만 가지고 있는 커널

: Message passing(메세지 전달) 을 통해 통신 제공

: 현대 OS 대부분이 이 방법 사용(mac os등)


<장점>

- OS 확장에 용이 : 새로운 서비스들이 사용자 공간에 추가되며, 커널 변경 필요없기 때문.

  => 다른 하드웨어로 쉬운 이식, 신뢰성, 안정성 



<단점>

- 속도가 느리다(성능저하)



<구조>


- 마이크로커널의 대표적 3가지 기능

  1) 프로세스간 통신(Interprocess Communication) : Message 송수신 역학

  2) 메모리 관리(Memory Management)

  3) CPU 스케줄링(CPU scheduling)


- 모든것이 Message 기반

  ex)파일 읽고 싶을때, File 입출력하라고 usermode에 있는 file System에 message를 보내 요청하는 형태









[모듈(Modules)]

- 적재가능 커널 모듈(loadable kernel modules)

  : 최선책모델. 커널은 핵심요소 가지고 있고, 필요할때마다 부가적 서비스들을 모듈을 통해 링크하는 모듈

  # Solaris, Linux, Mac Os, windows등에서 사용

  # Solaris 적재가능 모듈 생략.








[혼용 시스템(Hybrid Systems)]

: Monolitic(모놀리식) + micokernel(마이크로커널)

: 다양한 구조를 결합해 성능, 보안, 편리성 문제를 해결하려는 혼용 구조로 구성.

- 모놀리식 : Linux와 Solaris는 운영체제 전부가 주소공간에 존재해 효율적 성능 제공

- 마이크로커널 : window도 성능때문에 대부분 모놀리식이지만, 사용자 모드 프로세스로 실행되는 분리된 서브시스템을 지원.


# Mac Os X : 혼용 / Aqua : 응용환경 , Cocoa : 프로그래밍환경(API명시) 에 이용됨.

# IOS : 모바일 환경 / <구조> (위)Cocoa Touch - 미디어 서비스 - 핵심 서비스 - 핵심 OS(아래)

# Android : Linux 커널 기반







*** 모놀리식 : 하나에 전부 구성, 성능 / 마이크로커널 : 확장성, 이식성, 속도저하

'기타 > [운영체제]' 카테고리의 다른 글

[운영체제 2장 요약](작성중)  (0) 2019.03.27
2-10장. 시스템 부트  (0) 2019.03.24
2-6장. 운영체제 설계 및 구현  (0) 2019.03.18
2-5장. 시스템 프로그램  (0) 2019.03.18
2-4장. 시스템 호출의 유형  (0) 2019.03.15