User Mode vs Kernel Mode
컴퓨터 시스템의 운영체제(OS)는 프로그램을 실행할 때 주로 두 가지 모드 중 하나로 실행되는데요. 바로 유저 모드(User Mode)와 커널 모드(Kernel Mode)입니다.
User Mode (유저 모드)
- 정의: 응용 프로그램이나 사용자 프로세스가 동작하는 제한된 권한의 모드
- 특징
- 시스템 자원(하드웨어, 메모리 등)에 직접 접근 불가
- 커널의 보호된 리소스를 변경하거나 접근하려면 시스템 콜(System Call)을 통해서만 가능
- 안정성과 보안을 위해 제한된 환경을 제공
Kernel Mode (커널 모드)
- 정의: 운영체제의 핵심 기능이 실행되는 특권 모드
- 특징
- 시스템 자원에 직접 접근 가능
- 하드웨어 관리, 메모리 관리, 프로세스 스케줄링 등 핵심 작업 수행
- 잘못된 코드나 버그가 발생하면 시스템 전체에 영향을 미칠 수 있는 위험 존재
Mode Switching (모드 전환)
- 유저 모드와 커널 모드의 전환은 주로 시스템 콜, 인터럽트, 예외(exception) 등을 통해 이루어집니다.
- 예를 들어, 사용자가 파일을 열거나 데이터를 읽고 쓸 때 시스템 콜이 발생하면, 운영체제는 일시적으로 유저 모드에서 커널 모드로 전환하여 요청된 작업을 처리합니다. 작업이 끝나면 다시 유저 모드로 복귀합니다.
두 가지 모드가 필요한 이유
- 보안과 안정성
- 유저 모드에서 실행되는 프로그램이 함부로 시스템 리소스에 접근하거나 손상시키지 못하게 제한함으로써 시스템 전체의 안정성을 높입니다.
- 리소스 관리
- 커널이 직접 하드웨어와 시스템 자원을 관리하여 효율성과 성능을 유지합니다.
정리
비교 항목 | 유저 모드 (User Mode) | 커널 모드 (Kernel Mode) |
권한 | 제한된 권한 | 모든 권한 |
접근 가능성 | 직접 접근 불가능 | 직접 접근 가능 |
예시 | 응용 프로그램, 사용자 프로세스 | OS 커널, 드라이버 등 핵심 시스템 |
이러한 두 가지 모드가 존재함으로써 운영체제는 효율적으로 시스템을 보호하면서 다양한 프로그램이 동시에 안정적으로 동작하도록 합니다.
마치면서
유저 모드와 커널 모드는 운영체제의 핵심 개념 중 하나로, 시스템의 안정성과 보안을 유지하는 데 매우 중요한 역할을 하는데요. 이러한 모드 분리를 이해하면 시스템 콜, 인터럽트, 그리고 메모리 보호 등 이후에 학습하게 될 여러 OS 개념들도 더 잘 이해할 수 있습니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] User Stack 핵심 개념 정리 (0) | 2025.05.18 |
---|---|
[CS기초] Register vs Memory (0) | 2025.05.18 |
[CS기초] 만화로 보는 Iterative한 Tiny 서버가 동시에 실행될 수 있는 이유 (0) | 2025.05.14 |
[중간정리] 9주차 - Multiprocess/Multithread, 데드락, Semaphore/Mutex, C언어(포인터, 할당 및 해제) (0) | 2025.05.13 |
[CS기초] 9주차 개념정리 (0) | 2025.05.13 |