본문 바로가기
Computer Science/운영체제

[OS] 커널이란? (유저 모드, 커널 모드가 필요한 이유, CPU Protection Ring, 커널모드, 유저모드)

by 그적 2024. 1. 4.

목차

  • 커널이란?
  • 유저 모드, 커널 모드가 필요한 이유
  • CPU Projection Ring
  • 유저 모드
  • 커널 모드

 


1. 커널이란?

하드웨어와 응용 프로그램 사이에서 필요한 컴퓨터 자원들을 관리한다. 즉, 응용 프로그램이 동작할 수 있도록 명령을 따르고 하드웨어(프로세스, 메모리 관리, IO장치) 등의 자원들을 관리하는 핵심 역할을 한다.

 


2. 유저 모드, 커널 모드가 필요한 이유

우리가 컴퓨터를 할 때 운영체제는 여러 프로그램이 동시에 동작할 수 있도록 다중 프로그래밍을 지원한다. 여러 프로세스가 하나의 자원에 동시에 접근하려 할 때 충돌이 발생하거나, 사용자나 응용 프로그램이 직접 하드웨어에 접근하는 것을 막을 필요가 있다.

 

따라서 유저 모드와 커널 모드라는 권한을 부여해 이를 제어하며, 프로세스가 실행되는 동안 유저 모드에서 커널 모드로, 커널 모드에서 유저 모드로의 반환이 반복함으로써 자원을 보호하고 안정성을 유지한다.

 


3. CPU Protection Ring

Intel x86 프로세스에서는 특권 레벨을 표현하기 위해 CPU Protection Ring을 사용한다. 레벨이 높을수록 권한이 적고, 더 낮은 레벨의 명령을 실행할 수 없도록 제한한다. 윈도우, 리눅스를 포함한 대부분의 운영체제는 Ring 0와 Ring 3만을 사용하며, Ring 0는 커널 모드, Ring 3는 유저 모드를 지칭한다.

 


4. 유저 모드

유저 모드는 일반적인 응용 프로그램, 즉 사용자 애플리케이션 코드가 실행된다. 제한된 명령을 수행하기 때문에 프로세스 간의 충돌, 잘못된 접근 등을 방지하고 시스템을 보호한다.

 

하드웨어(디스크, I/O 장치)를 사용해야하는 작업이 있을 경우, 시스템 콜(system call)을 통해 커널 모드로의 전환을 요청하며 이때 mode bit가 0으로 변경된다.

 


5. 커널 모드

커널 모드는 모든 CPU 명령이나 메모리 등의 하드웨어에 직접 접근하고 제어한다. 시스템 콜(system call)에 대한 작업을 마친 후, mode bit를 1로 변경하고 다시 유저 모드로 되돌아간다.

 

댓글