728x90
모놀리식 커널

전통적인 운영체제인 유닉스, 리눅스 운영체제들은 모놀리식 커널을 사용한다. 모놀리식 커널은 처리기, 프로세스, 메모리, 파일시스템, 입출력 관리, 네트워크의 모든 커널의 기능을 커널의 내부에 시스템호출과 인터럽트 처리 부분으로 포함하여 제공하는 커널을 말한다.

사용자의 프로그램에서 운영체제 서비스의 사용은 시스템 호출(System Call) 형태로 사용할 수 있다. 또한 하드웨어나 운영체제에 종속적인 부분을 분리한 계층구조를 가지고 있어, 다른 형태의 플랫폼 이식에 유연성을 제공하지만 새로운 입출력장치의 추가시, 인터럽트 처리기가 커널 내부에 추가되어야 하므로 커널은 대부분 다시 컴파일되고 부팅되어야 한다.

다시말해, 모놀리식 커널은 모든 자원을 숨기고 모든 서비스는 시스템 호출을 통해 제공하는 거대한 객체에 비유될 수 있다. 모놀리식 커널의 장단점을 살펴보면 다음과 같다.

  • 일반적으로 시스템 호출에 의한 서비스가 빠르다.
  • 새로운 하드웨어 추가나 운영체제 기능 변경시 커널을 새로 컴파일하고 부팅해야 한다.
  • 계층구조를 가지고 있지만 새로운 하드웨어 플랫폼에 대한 이식의 유연성이 적다.


마이크로 커널

마이크로 커널은 문자그대로 커널은 꼭 필요한 핵심적인 기능만 남겨둔 최소한의 커널이다. 커널에서 제공하는 기능은 처리기, 메모리관리, 프로세스관리, IPC, 동기화, 최소한의 시스템호출 만을 제공한다. 나머지 파일시스템, 네트워크, 입출력장치 관리 등은 커널에서 제공하지 않고 일반적으로 사용자프로세스(서버) 형태로 제공된다.

다시 말해, 일반 사용자가 수행하는 프로그램도 프로세스가 되고 파일 시스템 서비스를 제공하는 것도 사용자 프로세스 형태가 되는 것이다. 따라서, 사용자가 파일을 사용하고 싶다면 파일시스템 프로세스와 통신하여 이에 대한 작업을 수행한다.

즉, 파일시스템 프로세스나 사용자 프로세스들은 모두 우선순위를 가지고 스케줄링 경쟁을 하게 된다. 입출력 장치에 대한 서비스도 인터럽트가 들어오면 커널이 인터럽트를 처리하는 프로세스에게 메시지를 보내어 처리하는 형식이다.

마이크로 커널의 장단점을 살펴보면 다음과 같다.

  • 한 운영체제에 MS 파일 시스템과 UNIX 파일 시스템을 같이 제공하려면 두 개의 파일 서버 프로세스를 두면 되기 때문에 유연성이 좋다. 또한 이식성이 뛰어나 하드웨어 추가도 서버만 추가하면 되기 때문에 커널의 변화가 없어 커널 수행 중에도 이러한 서비스를 동적으로 추가할 수 있다.
  • 커널의 크기가 작으므로 커널과 일부 서비스만으로 작은 운영체제를 구성하여 임베디드 시스템에 사용할 수 있다. 즉, 컴포넌트 기반 운영체제에 더욱 가깝다고 할 수 있다.
  • 모놀리식 커널에서는 실시간 프로세스의 수행이 일반적인 서비스를 위한 시스템 호출 수행 부분에 의해 방해를 받을 수 있다. 마이크로 커널에서는 많은 서비스가 사용자 프로세스의 형태로 제공되므로 우선 순위가 높은 실시간 프로세스의 수행 기회가 더 많아진다.
  • 커널의 핵심적인 기능 외에는 모두 프로세스 형태로 제공되므로 파일시스템이나 입출력 처리가 많은 수록 서로 간의 메시지를 주고 받아야 하므로 속도가 느려질 수 있다는 단점이 있다.


[운영체제] - 커널(Kernel)

출처 : http://proneer.tistory.com/281

728x90

'OS' 카테고리의 다른 글

스레드 동기화  (0) 2014.11.13
RAID  (0) 2014.10.17
가상메모리 사용 이유  (0) 2014.10.17
프로세스 데드라인 스케쥴링  (0) 2014.10.17
캐시메모리 적중률(Hit Rate)  (0) 2014.10.17

+ Recent posts