커널의 구성

DanChu 🌟·2022년 8월 3일
0

커널의 핵심 기능

  • 프로세스 관리
    프로세스에 CPU를 배분하고 작업에 필요한 제반환경 제공

  • 메모리 관리
    프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간 제공

  • 파일 시스템 관리
    데이터를 저장하고 접근할 수 있는 인터페이스 제공

  • 입출력 관리
    필요한 입력과 출력 서비스 제공

  • 프로세스간 통신 관리
    공동 작업을 위한 각 프로세스간 통신(IPC) 환경 제공


단일형(모놀리식) 구조 커널

운영체제의 모든 기능 및 구성요소를 커널에 포함하여 커널의 다양한 서비스 및 높은 수준의 하드웨어 추상화를 하나의 덩어리(주소 공간)로 묶은 것이다.

단일커널 기반 운영체제는 프로세스 관리, 메모리 관리, 인터럽트 처리, 입출력 통신, 파일 시스템 등과 같은 모든 기본적인 시스템 서비스를 실행하는 커널 공간과 운영체제의 나머지 부분(라이브러리, 응용프로그램)의 사용자 공간을 계층 방식으로 구성
VFS, IPC, 디바이스 드라이버 등의 시스템 기능들은 커널위의 서버 형태로 존재

성능이 좋으며 모델간 통신비용 감소된다.

하지만 인터페이스와 기능의 분리가 어렵다.

  • 운영 체제 개발자 입장에서 유지 보수가 일반적으로 더 어려움
  • 응용 프로그램의 실패가 전체 시스템 충돌로 이어질 위험이 있고, 잘못된 또는 악성 프로그램으로 인한 보안에 취약

e.g. 초기 UNIX 시스템

계층형 구조 커널


운영체제가 기능의 추가로 점점 확대되면서 복잡한 설계를 간결하게 해결하고자 유사한 기능을 묶어 계층화하여 모듈구조로 변화되었다.
예를 들어, 하향식 접근 방식으로 전반적인 기능과 특징의 구성 요소로 나누어지면서 시스템은 여러가지 모듈(방법)을 만들 수 있다.

구조와 디버깅의 간단

  • 각 계층은 각각 낮은 수준(계층)의 기능(작업) 및 서비스를 사용하도록 선택되므로 디버깅 및 시스템 검증을 단순화
  • 각 계층은 하위 계층에 의해 구현되고 운영되는데, 각 계층은 이러한 작업의 구현 방식을 모두 알 필요없이 각자의 계층 작업과 역할만 수행

사용자 프로세스 요청을 실행하는데 많은 계층을 통과해야 하는 문제가 있음

  • 한 계층에서 다른 계층으로의 데이터 전달에서 시스템에 추가 오버헤드의 시스템 호출이 발생


    e.g. 네덜란드에서 만들어진 THE 시스템

마이크로 구조 커널

잘 정의된 작은 모듈로 분할하여 운영체제의 높은 신뢰성을 달성하려는 구조
입출력 제어와 기본 프로세스 통신 커널을 줄이고 다른 시스템 서비스는 정상적인 프로세스의 형태 즉, 서버로 불리는 사용자 공간에 있도록 한다.

따라서 메모리를 관리하는 서버, 프로세스 관리 서버, 파일 시스템이나 드라이버 서버가 모두 사용자 공간에 들어간다.

서버가 더 이상 커널 공간에서 실행되지 않기 때문에 사용자 프로세스가 특권 모드(다시 종료)가 될 수 있도록 문맥교환이 필요.

하지만 이러한 구조덕분에 하나의 서비스가 죽더라도 커널 전체가 패닉되지 않는다

e.g. MacOS X, Windows NT


references

0개의 댓글