커널의 주요기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것이다.
S/W로부터 요청(SYSTEM CALL)을 받아 하드웨어가 처리할 수 있도록 요청을 변환하는 역활이다.
(User는 shell을 이용하여 Kernel을 통해 하드웨어를 사용할 수 있다.)
- 메모리 관리
메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지 추적- 프로세스 관리
어느 프로세스가 중앙처리장치를 언제 얼마나 사용할 지를 결정한다.- 장치 드라이버
하드웨어와 프로세스 사이에서 중재자/인터프리터의 역활을 수행한다.- 시스템 호출 및 보안
프로세스의 서비스 요청을 수신한다.
초창기의 구조로 커널의 핵심 기능을 구현하는 모듈들의 구분없이 하나로 구성되어 있다.
구현에 초점이 맞추어 있었기때문에 main()함수 하나에 모든 코딩을 넣은 구조.
■ 장점
모듈들이 거의 분리되어 있지않아 통신 비용이 줄어들어 성능이 좋다.
■ 단점
버그나 오류 발생시 높은 의존도로 인해 작은 결함에도 시스템 전체에 영향이 가고 처리 또한 매우 까다롭다.
유지보수가 어렵다.
운영체제가 커지고 복잡해질수록 구현하기가 매우 어렵다.
비슷한 기능을 가진 모듈들을 묶어 계층을 만들고, 계층 간의 통신을 통해 운영체제를 구현.
■ 장점
단일형 구조보다 버그나 오류를 쉽게 처리한다.
디버깅이 쉽다.
■ 단점
상하관계가 생기기 때문에 하나의 계층에 이상이 생기면 위,아래 계층도 동작하지 못할 수 있다.
역시 운영체제가 커지고 복잡해지면 많은 계층들이 발생하게되어 커널의 크기도 커지고 하드웨어의 용량도 늘어난다.
다양한 OS 서비스를 'Kernel Mode'가 아닌 'User Mode'에서 처리하는 커널 구조이다. 기존 단일형 구조 커널에서 핵심 서비스 만을 남겨두고 나머지는 제외하여 가볍게 만든 최소한의 커널이다.
■ 장점
💨 커널의 크기가 작으므로 커널과 일부 서비스만으로 작은 운영체제를 구성하 여 임베디드 시스템에 사용할 수 있다.
💨 하나의 커널로 다수의 운영체제를 동시에 수행시킬 수 있다.
💨 이식성이 좋다.
💨 모듈 크기가 굉장히 작아졌기 때문에 안정성이 높아졌다.
💨 각 모듈이 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도
전체 운영체제가 멈추지 않는다.
■ 단점
잦은 통신이 필요하기 때문에 성능 저하의 우려가 있다.
⬜ 단일형 구조 커널 VS MICRO 구조 커널