2025-09-30 23:45
Tags: 운영체제
커널(Kernel)
가. 프로세스 관리 (Process Management)
- 실행 중인 모든 프로그램을 ‘프로세스’라고 부른다.
- CPU는 하나인데 여러 프로세스를 동시에 실행하는 것처럼 보이게 하는 것이 바로 커널의 역할이다.
- 이를 위해 커널은 각 프로세스에 CPU 사용 시간을 매우 짧은 단위로 잘게 쪼개어 나눠주는 **프로세스 스케줄링]**을 수행
- 마치 유능한 비서가 여러 손님과의 미팅 시간을 분 단위로 쪼개어 관리하는 것과 같다.
- 또한 프로세스의 생성, 종료, 프로세스 간의 통신(IPC, Inter-Process Communication)을 관리하며
- 시스템이 원활하게 멀티태스킹을 수행하도록 돕는다.
- 이를 위해 커널은 각 프로세스에 CPU 사용 시간을 매우 짧은 단위로 잘게 쪼개어 나눠주는 **프로세스 스케줄링]**을 수행
나. 메모리 관리 (Memory Management)
- 메모리(RAM)는 프로그램과 데이터가 실행 중에 머무는 작업 공간이다.
- 커널은 각 프로세스가 필요로 하는 메모리 공간을 할당]하고, 사용이 끝나면 회수(Deallocate)한다.
- 또한, 다른 프로세스의 메모리 영역을 침범하지 못하도록 철저히 격리한다.
- 가장 중요한 기술 중 하나는 가상 메모리(Virtual Memory) 관리다.
- 실제 물리 메모리보다 더 큰 공간을 각 프로세스에게 있는 것처럼 제공하여,
- 프로그래머가 메모리 부족 걱정 없이 프로그램을 개발하고, 시스템이 더 효율적으로 메모리를 사용하도록 만든다.
다. 파일 시스템 관리 (File System Management)
- 하드디스크나 SSD 같은 저장 장치에 데이터를 체계적으로 저장하고 검색할 수 있도록 하는 것이 파일 시스템이다.
- 커널은 파일을 생성하고, 읽고, 쓰고, 지우는 모든 요청을 처리한다.
- 또한 디렉터리(폴더) 구조를 관리하고, 파일 접근 권한을 제어하여 데이터의 무결성과 보안을 유지한다.
- 사용자가 보기에는 간단한 파일 복사 작업이지만, 내부적으로는 커널이 수많은 디스크 입출력 작업을 조율하고 있는 것이다.
라. 장치 관리 (Device Management)
- 컴퓨터에 연결된 키보드, 마우스, 모니터, 네트워크 카드 등 모든 입출력(I/O) 장치는 커널을 통해 제어된다.
- 커널은 각 하드웨어 제조사가 제공하는 디바이스 드라이버(Device Driver) 를 통해 해당 장치와 통신한다.
- 응용 프로그램이 “키보드 입력을 받아라”라고 요청하면,
- 커널은 키보드 디바이스 드라이버를 통해 실제 하드웨어 신호를 받아들여 프로그램에 전달해 준다.
- 이 덕분에 프로그램은 하드웨어의 종류와 상관없이 일관된 방식으로 장치를 사용할 수 있다.
| 특징 | 일체형 커널 (Monolithic) | 마이크로커널 (Microkernel) | 하이브리드 커널 (Hybrid) |
|---|---|---|---|
| 핵심 철학 | 모든 것을 커널 하나에 통합 | 최소 기능만 커널에 유지 | 속도와 안정성의 절충 |
| 성능 | 매우 빠름 | 상대적으로 느림 | 빠름 |
| 안정성 | 낮음 (하나의 오류가 시스템 전체에 영향) | 높음 (오류가 해당 서비스에만 국한됨) | 비교적 높음 |
| 확장성/유지보수 | 어려움 | 쉬움 | 비교적 쉬움 |
| 크기 | 큼 | 작음 | 중간 |
| 대표 OS | Linux, UNIX 계열 | QNX, Minix | Windows, macOS |