[운영체제] Kernel

CHELSEA·2020년 7월 8일
1

커널?

오늘 말하고자 하는 주제인 커널(Kernel)은 그저 프로그램입니다. 다른 프로그램들과 구분되는 점이 있다면, 메모리에 항상 상주하고 있는 프로그램, 'Memory Resident'라는 점입니다. 여담으로, 우리가 주로 사용하는 IDE, 워드 프로세서와 같은 프로그램들은 'Disk Resident'입니다. 커널이 메모리에 상주한다는 것은 필요할 때만 RAM에 적재해 사용하는 프로그램과 달리 항상 동작하고 있어야 한다는 것을 의미합니다. 커널이 무슨 일을 하기에 이렇게나 중요하게 여겨지는 걸까요?

자원 관리 (Resource Management)

커널은 주소 공간과 그 안의 리소스에 대한 액세스를 중재할 수 있는 보호 매커니즘을 정의합니다. 또한 동기화와 IPC를 위한 방법을 제공합니다. IPC란 Inner Process Communication, 즉 프로세스 간 통신을 뜻합니다. 프로세스나 스레드 사이의 컨텍스트 스위칭도 커널이 담당합니다.

메모리 관리 (Memory Management)

커널은 시스템 메모리에 대한 전체 액세스 권한을 가지고 있습니다. 프로세스들이 원할 경우 프로세스가 메모리에 안전하게 액세스할 수 있도록 허용해 주어야 합니다. 페이징 기법이나 파티션 기법 등을 활용해 메모리를 관리합니다.

장치 관리 (Device Management)

장치 드라이버는 OS가 하드웨어 장치와 상호작용 할 수 있도록 해 주는 프로그램입니다. 커널은 장치 드라이버를 이용해 컴퓨터 주위의 프린터, 마우스 등의 장치를 제어합니다.

커널의 종류

커널의 구조에 따라 여러 종류로 구분됩니다. 이 글에서 다룰 커널의 종류는 모노리틱 커널, 마이크로 커널, 하이브리드 커널 세 가지입니다.

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

모노리틱 커널은 단일형 커널이라고도 합니다. 이름의 뜻을 생각하면 커널의 구조를 떠올리기 쉽습니다. 커널에서 제공할 수 있는 다양한 서비스를 한 덩어리로 묶은 형태의 커널을 모노리틱 커널이라고 합니다. 모노리틱 커널은 성능이 좋은 대신 유지보수가 힘듭니다. 여러 서비스가 한 덩어리로 묶여 있으니 유지보수가 힘든 것은 당연한 일이겠죠? 성능이 좋은 이유는 아래에서 설명하도록 하겠습니다.

마이크로 커널

마이크로 커널 또한 이름에서 그 구조를 떠올릴 수 있습니다. 커널에서 제공할 수 있는 다양한 서비스들을 한 덩어리로 묶은 커널인 모노리틱 커널과 대비되게, 마이크로 커널은 OS에 추가되어야 하는 다양한 매커니즘을 최소한으로 제공하는 초소형 커널입니다.

모노리틱 커널 vs 마이크로 커널

모노리틱 커널과 마이크로 커널의 차이점을 비교해 봅시다.

운영체제는 유저가 접근하고 다룰 수 있는 유저 모드와 커널 단의 커널 모드로 구분됩니다. 모노리틱 커널 기반의 운영체제의 구조를 보면 OS에서 제공할 수 있는 여러 서비스들이 커널에 한 덩어리로 묶여 있는 것을 볼 수 있습니다. 반면 마이크로 커널 기반의 운영체제 구조를 보면 기본적으로 필요한 몇 가지의 기능들을 제외하고는 서버라는 개념으로 유저 모드에 올라와 있는 것을 볼 수 있습니다. 모노리틱 커널에는 포함되어 있는 장치 드라이버가 마이크로 커널에는 없는 것도 보실 수 있습니다.

하이브리드 커널

그렇다면 하이브리드 커널은 무엇일까요? 이름에서 대충 느끼셨을 테지만, 모노리틱 커널과 마이크로 커널의 개념을 합친 것이 하이브리드 커널입니다. 과거에는 프로세스의 클럭이 잦았고, 마이크로 커널의 구조에서 잦은 클럭은 잦은 문맥 교환과 IPC를 발생시켰습니다. 반면, 커널의 모든 서비스가 하나의 주소 공간에 존재하는 단일형 커널은 마이크로 커널에 비해 과부하가 덜합니다. 그러나 요즘은 클럭이 예전에 비해 많이 잦지 않습니다. 또한 마이크로 커널과 모노리틱 커널 나름의 이점을 인정받아 둘의 개념을 섞은 하이브리드 커널이라는 개념이 탄생했습니다. 예를 들면 OS X에서는 파일 시스템과 네트워크 등의 기능을 커널에 포함시킨 형태의 하이브리드 커널 구조입니다.

하이브리드 커널의 개념이 모노리틱 커널의 개념과 다를 것 없다는 의견도 있지만, 이런 개념도 있다는 것을 소개하기 위해 내용을 작성하였습니다! 이 점 참고해 주시길 바랍니다.

0개의 댓글