CS

Kernel(커널)

SeaPlus 2021. 7. 2. 11:01

[Kernel(커널)]

 

 

운영체제 심장, 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 프로세스 제어, 메모리 제어, 프로그램이 운영체제에 요구하는 시스템 등을 수행하는 부분으로 운영체제 하부에서 돌아간다.

 

 - 프로세스: 시스템에서 프로그램이 진행되어가는 흐름

 

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

 

 

커널의 구성

● 커널은 하드웨어와 응용프로그램 사이에 존재한다.

● 사용자가 커널에 접근하려면 시스템 호출(system Call)인터페이스를 통해야 한다.

 

시스템 호출

더보기

시스템 호출

  • 커널이 자신을 보호하기 위한 수단
  • 사용자, 응용프로그램 으로부터 컴퓨터 자원을 보호하기 위해 직접 접근을 차단하는 인터페이스
  • 응용 프로그램 에서 운영체제에게 어떠한 기능수행을 요청하는 수단이 되기도 한다.

 

 

단일형 커널(모노리틱 커널)

입출력, 네트워크, 디바이스 지원 운영체제 에서 일어나는 모든 일을 단일 커널로 처리하는 방식

 

 장점: 단일형으로 처리하기 때문에 속도가 빠르고 디자인도 편리

 

단점:

1. 단일화로 인해 모듈들이 상호 의존적이라 오류발생시 치명적이다.

2. 커널의 크기가 거대 해진다.

3. 유지 보수가 어렵다.

4. 운영체제가 커지고 복잡해질수록 구현하기가 매우 어렵다.

 

종류: 리눅스 커널, windows 9x, mac os 8.6이하 버전

 

 

마이크로 커널

시스템 같은 서비스, 디바이스 관리를 제외한 디자인

 

장점

1. 모듈 크기가 작아서 안정성이 높다.

2. 각 모듈은 독립적으로 작동하기 때문에 오류발생시 안정성이 높다.

3. 커널의 크기가 작아 커널과 일부 서비스만으로 작은 운영체제를 구성하여 임베디드 시스템에 사용할 수 있다.

 

단점

잦은 통신으로 인해 커널의 전반적인 퍼포먼스는 저하됬다.

 

혼합형 커널

단일형 커널에 마이크로 커널디자인을 집어 넣어 만든 디자인 방식

 

 

 

( 참고 : https://mer1.tistory.com/41 )