I. 이중 모드의 개요
가. 이중 모드(Dual Mode)의 개념
- 다중 프로그래밍 환경에서 자원에 대한 접근을 사용자 모드(User Mode)와 커널 모드(Kernel Mode)로 분리하여 운영체제를 보호하는 기법
나. 보호 링(Protection Rings)의 개념
자원에 대한 접근 수준을 정의하여 데이터와 기능을 보호하는 메커니즘 – Ring 0: Kernel |
II. 이중 모드의 구조와 종류
가. 이중 모드의 구조
– Kernel Mode, User Mode로 구성 – User Mode에서 생성된 User Application은 System Call Interface를 통해 Kernel Mode로 전환 – Kernel Mode에서 System 권한이 필요한 작업이 끝나면 다시 User Mode로 전환 |
나. 이중 모드의 종류
종류 | 시스템 용어 | 구현 |
---|---|---|
User Mode | Slave Mode Unprivileged Mode | – 사용자 애플리케이션 코드 실행 – 시스템에 제한된 접근만 허용, 하드웨어 직접 접근 불가 – 시스템 콜 수행 시 사용자 모드에서 커널 모드로 전환 |
Kernel Mode | Master Mode Privileged Mode Supervisor Mode | – 커널 모드에서 OS는 모든 하드웨어 접근 및 제어 가능 – 시스템의 모든 메모리에 접근 및 모든 CPU 명령 실행 가능 – 일부 명령어는 커널 모드 특권(Privileged) 수준 코드 실행 |
III. 이중 모드의 구현과 역할
가. 이중 모드의 구현
# | 위치 | 모드 | 구현 |
---|---|---|---|
① | User Application | User Mode | – open(): 사용자가 Application 실행 – User Mode에서 프로그램 실행 |
② | System Call Interface | User Mode → Kernel Mode | – implementation of open(): 프로세스 실행으로 시스템 콜 발생 – 운영체제의 커널에서 시스템 콜 수행 – Kernel Mode로 전환 |
③ | Kernel | Kernel Mode | – 커널에서 요청 작업 수행 후 결과 반환 |
④ | User Application | Kernel Mode → User Mode | – open() 함수 이후 프로그램을 계속 수행 |
- 실행되는 코드 유형에 따라 User Mode와 Kernel Mode 사이를 전환(Switch)하며 작업 수행
나. 이중 모드의 역할
구분 | 역할 | 적용 효과 |
---|---|---|
사용자 | 보안 제공 | – 악의적인 사용자로부터 운영체제 보호 |
장애/결함 대응 | – Fault Tolerance 개선 및 성능 향상 | |
시스템 | 입출력 장치 보호 | – 디바이스 별 드라이버 접근 권한 제어 (in, out) |
메모리 보호 | – 메모리 접근 관리 및 제한 (MMU) | |
CPU 보호 | – 프로세스의 CPU 독점 제어 (Timer Interrupt) |
[참고]
- Abraham Silberschatz 외, “Operating System Concepts”