본문 바로가기

운영체제

운영체제 구조

1. 모놀리식 구조(Monolithic Structure)

 모놀리식 구조의 특징은 계층적 구조가 존재하지 않다는 것이다. 커널의 모든 기능을 단일 정적 바이너리 파일에 넣음으로서 파일 시스템 , CPU 스케줄링, 메모리 관리 등 운영체제의 역할을 하나의 계층에서 모두 이루어진다는 특징을 가지고 있다. 응용 프로그램이 일반적으로 커널에 대한 시스템 콜 인터페이스와 통신할 때, glibc 표준 C 라이브러리를 사용한다. 

  이 구조의 이점은 커널 내의 통신 속도가 굉장히 빠르며, 시스템 콜 인터페이스에는 오버헤드가 거의 없다는 것이다.

 

2. 계층적 구조(Layered Approach)

 시스템이 다양한 기능으로 세분화 될 수 있으며, 사용자 인터페이싀 최상위 층과 하드웨어를 담당하는 최하층으로 구분할 수 있다. 계층 구조의 장점은 구현과 디버깅의 간단함에 있다. 각 층은 제공된 연산에 의 구현되며, 오류가 생겼을 때 어느 계층에서 문제가 발생하였는지 쉽게 디버깅 할 수 있다. 

 

3. 마이크로커널

 Carnegie-Mellon 대학교의 연구자들이 사용자 수준 프로그램으로 커널을 모듈화한 Mach이라는 운영체제를 개발하였다. 마이크로커널의 주 기능은 클라이언트 프로그램과 사용자 공간에서 수행되는 다양한 서비스 간에 통신을 제공하는 것이다. 그들은 클라이언트와 운영체제가 직접적으로 통신하지 않고 작은 커널을 만들고 통신. 교환 함으로서 서비스를 제공하였다. 이로 인해, 운영체제의 확장이 쉬웠으며, 새로운 서비스에 대하여 커널을 변경할 필요가 없었다. 결국 확장 및 이식성 높은 운영체제의 등장으로 더욱 높은 보안성과 신뢰성을 제공한 운영체제가 등장하였고, 실제 macOS 및 iOS 운영체제의 커널 구성 요소인  Darwin이 Mach 마이크로커널이다. 

 하지만, 단점은 가중된 시스템 기능 오버헤드에 의하여 성능이 나빠졌고, 사용자 수준 서비스가 통신하기 위한 별도의 주소 공간이 필요하므로, 큰 장애를 가진다.

 

4. 모듈

 최근 기술 중 최선책은 LKM(loadable kernel modules) 기법이다. 이 기법은 커널은 핵심 구성요소를 가지고 있어, 부팅 혹은 실행 중에 부가 서비스들을 링크할 수 있다. 설계의 핵심은 서비스를 실시간 동적으로 링크하는 것이 커널에 새로운 기능을 넣는 것보다 바람직한 일인것이다. 운영체제의 주요 기능인 CPU 스케쥴링 과 메모리 알고리즘은 커널에 직접 구현하고 이외에 것은 LKM을 통해 구현할 수 있다는 것이다. 주요 기능은 마이크로커널에서 확장된 개념으로 통신하기 위하여 메시지 전달을 호출할 필요가 없기 때문에 효율적이다.

 

5. 하이브리드 시스템

사실상 하나의 구조를 채택한 운영체제는 거의 존재하지 않는다. 

macOS 와 iOS. 

- macOS는 데스크톱 및 랩톰 컴퓨터 시스템용이므로 Intel 아키텍처에서 실행되도록 컴파일된다. iOS 는 ARM 기반 아키텍처용으로 컴파일되며, iOS 커널은 전원 관리 및 공격적인 메모리 관리와 같은 특정 기능과 요구를 해결하기 위해 수정되었다.

- iOS 운영체제는 일반전으로 macOS 보다 개발자에게 훨씬 폐쇄적인 경향을 띈다. 

 

하이브리드 구조를 사용하는 Darwin에 초점을 맞춘다. 

Darwin은 Mach 마이크로커널과  BSD UNIX 커널로 구성된 계층화된 시스템이다. 

Darwin은 (트랩) 과 BSD 시스템 콜 두개의 시스템 콜 인터페이스를 제공한다. 이는 표준 C 라이브러리 뿐만 아닌 네트워킹, 보안 및 프로그래밍 언어를 지원하는 풍부한 라이브러리이다.

 

 시스템 콜 인터페이스 아래에서, Mach은 메모리 관리, CPU 스케줄링 및 RPC (message remote procedure call) 과 같은 통신 기능을 제공한다. 이는 Virtualization(가상화) 즉, 커널의 추상화를 통해서 사용 가능하며, Mach 및 BSD 외에도 커널 환경은 장치 들아ㅣ버 및 동적 적재가능 모듈 개발을 위한 I/O 환경을 제공한다. 

'운영체제' 카테고리의 다른 글

프로세스 간 통신  (0) 2024.09.22