이중 모드 (Dual Mode)

I. 이중 모드의 개요

가. 이중 모드(Dual Mode)의 개념

  • 다중 프로그래밍 환경에서 자원에 대한 접근을 사용자 모드(User Mode)와 커널 모드(Kernel Mode)로 분리하여 운영체제를 보호하는 기법

나. 보호 링(Protection Rings)의 개념

자원에 대한 접근 수준을 정의하여 데이터와 기능을 보호하는 메커니즘

– Ring 0: Kernel
– Ring 1,2: Device Drivers
– Ring 3: Applications

 

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 ApplicationUser Mode– open(): 사용자가 Application 실행
– User Mode에서 프로그램 실행
System Call InterfaceUser Mode → Kernel Mode– implementation of open(): 프로세스 실행으로 시스템 콜 발생
– 운영체제의 커널에서 시스템 콜 수행
– Kernel Mode로 전환
KernelKernel Mode– 커널에서 요청 작업 수행 후 결과 반환
User ApplicationKernel Mode → User Mode– open() 함수 이후 프로그램을 계속 수행
  • 실행되는 코드 유형에 따라 User Mode와 Kernel Mode 사이를 전환(Switch)하며 작업 수행

나. 이중 모드의 역할

구분역할적용 효과
사용자보안 제공– 악의적인 사용자로부터 운영체제 보호
장애/결함 대응– Fault Tolerance 개선 및 성능 향상
시스템입출력 장치 보호– 디바이스 별 드라이버 접근 권한 제어 (in, out)
메모리 보호– 메모리 접근 관리 및 제한 (MMU)
CPU 보호– 프로세스의 CPU 독점 제어 (Timer Interrupt)

 
[참고]

  • Abraham Silberschatz 외, “Operating System Concepts”

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^