본문 바로가기
컴퓨터 공학/운영체제

[운영체제] 운영체제의 구조 (커널과 인터페이스)

by tempus 2021. 8. 15.
반응형

🔷 커널과 인터페이스


운영체제는 커널과 인터페이스로 이루어져 있습니다.

 

  • 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로 운영체제의 성능을 좌우합니다. (자동차의 엔진에 해당한다.) 
  • 인터페이스 : 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 합니다.

운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있습니다

 

os_instructure_img
운영체제 구조

 

 


🔷 시스템 호출과 디바이스 드라이버 


이번에는 커널 내부에 있는 시스템 호출과 드라이버에 대해 알아볼 겁니다.

 

🔴  시스템 호출(System Call)


커널이 자신을 보호하기 위해 만든 인터페이스입니다. 사용자나 프로그램이 직접 컴퓨터 자원에 직접 접근하는 것을 막습니다. 그러므로 사용자나 응용 프로그램이 컴퓨터 자원을 사용하기 위해서는 시스템 호출을 사용해야 합니다. 보통은 함수의 형태로  제공됩니다. (Ex. printf(), write())

 

사용자나 응용 프로그램이 컴퓨터에 자원에 직접 접근할 경우 모든 과정을 직접 핸들링을 해야 합니다. 하지만 이때 부주의로 인해 컴퓨터 시스템 자체를 파괴할 수 있는 위험이 있습니다. 하지만 시스템 호출을 사용한다면 요청만 하고 결과만 기다리면 되므로 컴퓨터의 시스템이 파괴되는 일을 막을 수 있습니다. 

 

🔴  드라이버(Driver)


커널과 하드웨어의 인터페이스를 담당합니다. 컴퓨터 하드웨어의 종류는 다양합니다. 이때 운영체제가 각 하드웨어에 맞는 인터페이스를 개발하기는 어려우므로  하드웨어 제작자가 만든 소프트웨어를 받아서 설치하여 하드웨어를 사용할 수 있게 합니다. 이 소프트웨어를 디바이스 드라이버라고 합니다. 

 


🔷  커널의 구성 및 종류


커널이 하는 일은 크게 5가지로 볼 수 있습니다.

핵심 기능 설명
프로세스 관리 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다.
메모리 관리 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공한다.
파일 시스템 관리 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다.
입출력 관리 필요한 입력과 출력 서비스를 제공한다.
프로세스 간 통신 관리 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다.

 

🔴 단일형 구조 커널

초창기의 운영체제 구조로, 커널의 핵심 기능 모듈들이 구분 없이 하나로 구성되어 있습니다. 대표적인 운영체제는 MS-DOS, VMS 등이 있습니다. 쉽게 프로그램에서 main() 함수에 모든 기능을 구현한 것과 같습니다.

 

single_kurnel_img
단일형 구조 커널

 

장점

  • 모듈 간의 통신 비용이 줄어들어 효율적인 운영이 가능하다.

단점

  • 모듈들이 하나로 묶여 있기 때문에 버그나 오류를 처리하기 어렵다.
  • 기능상의 작은 결함이 시스템 전체로 확산할 수 있다.
  • 다양한 환경의 시스템 적용하기 어렵다. 수정이 필요한 경우 단일형 구조는 수정하기 어렵다.

 

🔴 계층형 구조 커널

비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들어서 계층 간의 통신을 통해 운영체제를 구현하는 방식, 윈도우 등 오늘날의 운영체제가 대부분 해당 구조를 가지고 있습니다.

 

stair_img
계층형 커널 구조

 

장점

  • 단일형에 비해 버그나 오류를 쉽게 처리할 수 있다. 오류가 발생 시 해당 계층만 수정하면 된다.
  • 디버깅이 쉽다.

단점

  • 계층이 존재하기 때문에 하나의 계층에 문제가 생기면  위, 아래 계층도 동작하지 못할 수 있다.
  • 운영체제가 커지고 복잡해지면 많은 계층들이 발생하게 되어 커널의 크기도 커지고 하드웨어의 용량도 늘어난다.

 

🔴 마이크로 구조 커널

위와 같은 계층형 구조의 문제로 인해 나타난 구조입니다. 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공하고 나머지 부분은 사용자 영역에 구현되어 있습니다. 애플의 운영체제 OS X와 IOS가 이 구조를 가지고 있습니다.

 

micro_kurnel_img
마이크로 커널 구조

 

 

장점

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

단점

  • 모듈이 독립적으로 존재하여 모듈 간 통신이 빈번하게 이루어져 성능이 저하될 수 있다.
반응형

댓글


loading