1. User Mode and Kernel Mode in Operating System
CPU가 실행되는 두 가지 권한 수준(Privilege Level)을 의미
User Mode
- 정의
- 애플리케이션 프로그램이 실행되는 모드
- CPU는 제한된 권한만 가지며, 하드웨어 자원에 직접 접근 불가
- 특징
- 사용자 프로세스는 커널 메모리에 접근할 수 없음
- 잘못된 동작이 발생해도 OS 전체가 영향을 받지 않도록 격리
- 하드웨어 제어나 시스템 콜은 직접 수행 불가
Kernel Mode
- 정의
- 운영체제 커널이 동작하는 모드
- CPU는 모든 명령을 수행할 수 있고, 모든 자원에 접근할 수 있음
- 특징
- 메모리 관리, 프로세스 스케줄링, 파일 시스템 관리, 디바이스 드랑이버 제어 등 핵심 기능 수행
- 잘못된 명령 실행 시 OS 전체가 치명적 오류 발생
- 보안을 위해 일반 사용자 프로그램은 직접 진입 불가, System Call을 통해서만 가능
User / Kernel Switching
- 전환 방법
- 프로그램이 OS 기능을 요청할 때 시스템 콜을 발생시켜 CPU를 커널 모드로 전환
- 예시
read()
, write()
, fork()
와 같은 시스템 콜은 사용자 모드에서 실행될 수 없으므로 커널 모드에서 처리
2. Register vs Memory
Register
- 정의
- 레지스터는 CPU 내부에 위치한 초고속 기억 장치
- 명령어 실행 중 필요한 데이터를 임시로 저장
- 특징
- CPU가 직접 접근할 수 있어 속도가 매우 빠름
- 개수가 제한적, 용도에 따라 특수화된 레지스터 존재
Memory
- 정의
- 실행 중인 프로그램과 데이터를 저장하는 장치
- CPU가 명령을 수행할 때 필요 데이터를 읽고 씀
- 특징
- 속도는 레지스터보다 느리지만 저장 용량이 훨씬 큼
- 프로그램 실행 시 디스크에서 코드와 데이터를 메모리로 적재한 후, CPU가 이를 실행
- OS는 메모리를 효율적으로 관리하기 위해 가상 메모리 제공
3. User Stack
정의