본문 바로가기
OS(운영체제)

운영체제 구조 (Operating System Structure)

by 걸어가는 신사 2021. 10. 20.

운영체제 구조 (Operating System Structures)

한 개의 일관된 시스템보다는 태스크를 작은 구성요소로 분할한다.

구성요소들은 상호 연결되고 하나의 커널로 연결된다.

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

커널의 모든 기능을 단일 주소 공간에서 실행되는 단일 정적 이진 파일(하나의 코드)에 넣는다.

  • 커널과 시스템 프로그램의 두 부분으로 구성된다.
  • 커널은 시스템 콜을 통해 파일 시스템, CPU 스케줄링, 메모리 관리 기능을 제공한다.
  • 하나의 주소 공간으로 결합하기에는 엄청나게 많은 기능이다.
  • 시스템 콜 인터페이스에는 오버헤드가 거의 없고 커널 안에서의 통신 속도가 빠르다. (장점)

 

2. 계층적 접근 (Layered Approach)

모듈화를 통해, 각 계층은 바로 아래 계층에서 제공하는 기능과 서비스만 사용

  •  장점
    • 설계와 구현이 단순하다.
    • 각 계층은 하위 계층에서 제공하는 연산(기능)만을 통해 구현된다.
    • 각 계층은 이 연산들이 어떻게 구현되었는지 알 필요가 없다.
  • 단점
    • 각 계층의 기능을 명확히 정의하기 어렵다.
    • 오직 하위 계층의 기능만 사용하기 때문에 주의 깊은 설계가 요구된다.
    • 순서대로 계층을 따라 기능이 수행되어야 하기 때문에 효율성(성능)이 떨어진다.

 

3. 마이크로커널 (Microkernels)

중요치 않은 구성요소를 커널로부터 제거하고, 그들을 별도의 주소 공간에 존재하는 사용자 수준(user mode) 프로그램으로 구현하였다.

  • 마이크로커널의 주 기능은 클라이언트 프로그램과 사용자 공간에서 수행되는 다양한 서비스 간에 통신을 제공한다.
  • 장점
    • 운영체제의 확장이 쉽다.
    • 운영체제는 한 하드웨어로부터 다른 하드웨어로 이식이 쉽다.
    • 더욱 높은 보안성과 신뢰성을 제공한다.
  • 단점
    • 가중된 시스템 기능 오버헤드 때문에 성능이 나빠진다.
      • 속도가 느려진다.

 

4. 모듈 (Modules)

커널은 핵심적인 구성요소의 집합을 가지고 있고,
부팅 때 또는 실행 중에 부가적인 서비스들을 모듈을 통하여 링크할 수 있다.
  • 현재 가장 많이 사용하고 있는 기술
    • 적재 가능 커널 모듈(loadable kernel modules, LKM)
  • 커널의 각 부분이 정의되고 보호된 인터페이스를 가진다는 점에서 계층 구조를 닮았다. 
    • 그러나 모듈에서 임의의 다른 모듈을 호출할 수 있다는 점에서 계층 구조보다 유연하다.
  • 단지 핵심 기능만을 가지고 있고 다른 모듈의 적재 방법과 모듈들과 어떻게 통신하는지 안다는 점에서는 마이크로 커널과 유사하다. 
    • 그러나 통신하기 위하여 메시지 전달을 호출할 필요가 없다.
  • 리눅스 운영체제가 LKM 사용한다.

 

5. 하이브리드 시스템 (Hybrid Systems)

여러 가지 구조를 혼용하여 구성한다.
  • linux (Monolithic + Modular)
    • 운영체제 전부가 하나의 주소 공간에 존재하여 모놀리식 구조이다.
    • 모듈을 사용하여 새로운 기능을 동적으로 커널에 추가할 수 있다.
  • window (Monolithic + Microkernel)
    • 성능의 이유로 대체적으로 모놀리식 구조이다.
    • 마이크로커널의 형태도 유지하고 있다.
반응형

댓글