Post

운영체제 - 커널



1. 커널(Kernel)

커널은 운영체제의 핵심 부분으로, 프로세스 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등과 같은 기능을 담당한다. 좁은 의미로 표현하면 커널을 ‘운영체제’라 칭할 수 있을 정도로, 운영체제 관련해 학습 자료로 나오는 내용 중 커널의 기능에 대한 것이 많다.

커널은 항상 메모리에 상주하면서, 시스템 호출을 처리하고 하드웨어와 상호작용한다.커널이 상주하고 있는 이 메모리 공간을 커널 영역(Kernel Space)이라고 부르며, 일반적으로 사용자 프로세스의 직접적인 접근을 허용하지 않는다.

(사용자 응용 프로그램이 실행되는 메모리 공간을 사용자 영역(User Space)라고 하며 사용자 프로세스는 이 영역에서 실행)

커널은 보안을 강화하기 위해 커널 모드와 사용자 모드를 구분해 작동하며, 사용자 모드에서 실행중인 프로세스는 직접적으로 커널의 기능을 사용 할수 없어 시스템 호출을 통해 커널에 접근한다.

2. 커널의 주요 기능

2.1 시스템 호출 처리

커널은 시스템 호출(System calls)을 처리해, 응용 프로그램이 운영체제 서비스에 접근할 수 있도록 한다. (파일 입출력, 메모리 할당, 프로세스 생성 등의 작업은 모두 시스템 호출을 통해 커널에 요청됨)

2.2 프로세스 관리

커널은 프로세스를 생성 및 스케줄링하며, 각 프로세스가 필요로 하는 자원을 관리한다. 멀티 태스킹 환경에서 여러 프로세스가 동시에 실행되도록 조절하는 것이 중요한 역할.

2.3 메모리 관리

커널은 프로세스가 필요로 하는 메모리를 할당하고, 메모리 공간 간의 충돌을 방지한다. 메모리 할당 및 해제, 가상 메모리 관리 등을 통해 메모리 자원을 관리한다.

2.4 입출력 관리

커널은 디스크, 키보드, 마우스 등 다양한 입출력 장치와의 통신을 담당하기도 한다.

2.5 파일 시스템 관리

파일의 생성, 삭제, 읽기, 쓰기, 보안 및 권한 설정 등 파일 시스템의 핵심 기능을 관리한다.

2.6 시스템 리소스 보호 및 보안

커널은 시스템의 안전성을 유지하기 위해 프로세스 간의 충돌을 방지하고, 시스템 자원에 대한 접근을 제어한다.

2.7 인터럽트 처리

하드웨어나 외부 이벤트로부터 발생하는 인터럽트를 처리하여 대응한다.

참고. 영역과 모드

영역은 메모리 공간의 관점에서, 운영체제와 응용 프로그램의 실행 위치를 나타내는 용어인 반면, 모드는 프로세스의 실행 권한에 관련된 용어에 가깝다.

커널 모드와 사용자 모드

커널 모드: 운영체제의 핵심 부분인 커널이 동작하는 모드로, 최고 권한을 가지고 있다. 시스템 호출이나 특정 이벤트가 발생했을 때 커널 모드로 전환되어 핵심 기능을 수행한다.

사용자 모드: 일반 응용 프로그램이 실행되는 모드로, 상대적으로 낮은 권한을 가지고 있다. 사용자 모드에서는 시스템 리소스에 직접적인 접근이 제한되며, 특정 작업에 대한 권한이 필요한 경우 시스템 호출을 통해 커널에게 요청한다.

커널 영역과 사용자 영역

커널 영역: 메모리 공간 중에서 커널이 실행되는 영역. 운영체제의 핵심 코드 및 데이터가 저장되는 영역으로, 커널이 시스템의 핵심 기능을 수행하는 곳.

사용자 영역: 사용자 응용 프로그램이 실행되는 메모리 공간. 사용자 영역에서는 일반적인 응용 프로그램 코드와 데이터가 저장되며, 사용자 프로세스가 실행됨.

This post is licensed under CC BY 4.0 by the author.