목차
- 커널이란?
- 유저 모드, 커널 모드가 필요한 이유
- 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로 변경하고 다시 유저 모드로 되돌아간다.
'Computer Science > 운영체제' 카테고리의 다른 글
[OS] 프로세스 간의 통신, IPC란? (프로세스 간 통신이 필요한 이유, IPC 기법과 특징) (1) | 2024.01.17 |
---|---|
[OS] 프로세스와 컨텍스트 스위칭이란? (프로세스 상태와 관리, 프로세스 구조와 구성, 컨텍스트 스위칭 오버헤드) (0) | 2024.01.09 |
[OS] 인터럽트란? (인터럽트가 필요한 이유, 인터럽트 동작 방식, 종류, 한번에 여러개의 인터럽트가 발생한다면?) (0) | 2024.01.06 |
[OS] 시스템 콜이란? (시스템콜 종류, 시스템콜 동작 방식) (1) | 2024.01.05 |
[OS] 운영체제란? (운영체제 역할, 기능, 구조) (1) | 2024.01.02 |
댓글