[운영체제] 커널의 구성

찬들이·2022년 8월 3일
0

컴퓨터공학

목록 보기
5/34
post-custom-banner

커널의 핵심 기능

💡 커널이란?

  • 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어에서부터 오는 자원을 관리하고 사용 할 수 있게 해주는 운영체제의 핵심 요소이다.

커널의 핵심 기능

  • 커널의 핵심 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 기능이다.
  • 커널이 핵심 기능을 수행하는 일은 크게 5가지로 나눌 수 있다.
    • 프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다.
    • 메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공한다.
    • 파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다.
    • 입출력 관리 : 필요한 입력과 출력 서비스를 제공한다.
    • 프로세스간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다.

커널의 구조

단일형 구조 커널

  • 초창기 운영체제 구조로, 커널의 핵심 기능 모듈들이 구분없이 하나로 구성되어 있다. ex) main함수에 모든 기능을 구현한 것과 같다.

  • 장점

    • 모델간에 통신 비용이 줄어든다.
  • 단점

    • 모듈들이 하나로 묶여있어 오류를 잡기가 어렵다.
    • 작은 기능적 오류가 시스템 전체에 영향을 미친다.
    • 다양한 환경의 시스템에 적용하기 어렵다.

계층형 구조 커널

  • 비슷한 기능을 가진 모듈들을 하나로 묶어서 하나의 계층을 만들고, 계층간의 통신을 통해 운영체제를 구현하는 방식이다.
  • 윈도우 등 요즘날의 운영체제들이 많이 사용하는 방식이다.
  • 장점
    • 단일형에 비해 오류 수정이 원활하다. 오류 발생시 해당 계층만 수정하면 된다.
    • 디버깅이 쉽다.
  • 단점
    • 계층이 존재하기 때문에 하나의 계층이 문제가 생기면, 위 아래가 작동하지 않을 수도 있다.
    • 운영체제가 크고 복잡해지면 많은 계층들이 발생하게 되어 커널의 크기도 커지고 하드웨어의 용량도 늘어나게 된다.

마이크로 구조 커널

  • 계층형 구조의 문제를 해결하기 위한 구조로 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 기본적인 부분을 제외하고 나머지 부분은 사용자 영역에 구현해 놓은 방식이다. 주로 IOS와 OS X가 이 구조를 사용하고 있다.

  • 장점

    • 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 시스템이 멈추지 않는다.
    • 많은 컴퓨터에 이식하기가 어렵다.
    • 커널이 가벼워 CPU 용량이 적은 시스템에도 사용이 가능하다.
  • 단점

    • 모듈이 독립적으로 존재하여 모듈간 통신이 빈번하게 이루어지기 때문에 성능이 저하될 수 있다.
profile
Junior-Backend-Developer
post-custom-banner

0개의 댓글