공부한거 정리하는 노트에요

[OS] 듀얼 모드 (Dual Mode, 이중 모드)

by 구설구설
듀얼 모드는 응용 프로그램이 중요한 명령어를 직접 실행하지 못하도록 제한하기 위해 명령어 실행 권한을 두 단계로 나누는 것을 의미한다.

Previleged Instructions

컴퓨터의 명령어는 다양한 종류가 있으며, 각 명령어가 실행될 때 발생하는 결과도 서로 다르다.

그중 일부 명령어는 컴퓨터에 치명적인 영향을 줄 수 있기 때문에 응용 프로그램이 임의로 실행하지 못하도록 제한되어야 한다.

이러한 명령어들을 Privileged Instructions라고 하며, 응용 프로그램으로부터 이러한 명령어를 격리해야 한다.

따라서, 운영 체제가 하드웨어의 모든 권한을 안전하게 관리할 수 있는 시스템이 필요하게 되었다.

예시

  • I/O 장치 조작 명령어
  • 메모리 관리 명령어
  • CPU 제어 명령어(예: 인터럽트 처리)

듀얼모드 - Dual Mode

듀얼 모드는 하드웨어 접근 권한을 둘로 나누어 관리하는 방식이다.

이 모드는 커널 모드유저 모드로 구성된다.

커널 모드

  • 하드웨어에 대한 모든 권한을 가지고 실행된다.
  • 모든 메모리 읽기/쓰기, 모든 I/O 장치 접근, 모든 디스크 섹터 읽기/쓰기, 패킷 전송 및 읽기가 가능하다.

유저 모드

  • 제한된 권한을 가진다.
  • CPU는 명령어를 실행하기 전에 모든 명령어를 확인하며, 오직 운영 체제 커널에 의해 부여된 권한을 가진 명령어만 실행할 수 있다.

 

모드 간 전환 과정

유저 모드 → 커널 모드

  • Interrupt: 타이머 또는 I/O 호출과 같은 외부 하드웨어 이벤트에 의해 발생한다.
  • Exception: 예기치 않은 응용 프로그램 동작이나 악의적인 행위로 인해 발생한다.
  • 시스템 콜: 프로세스가 커널에 특정 작업을 요청할 때 발생한다.
    • 시스템 콜은 Exception과 동일한 매커니즘을 사용하여 구현된다.

커널 모드 → 유저 모드

  • 새 프로세스/스레드 시작: 새 프로세스 또는 스레드의 첫 번째 명령으로 점프한다.
  • Interrupt, Exception, 시스템 콜 복귀: 중단된 위치에서 실행을 재개한다.
  • 컨텍스트 스위치 완료: 전환된 프로세스에서 실행을 재개한다.
  • Upcall: 응용 프로그램에 특정 작업 완료를 알리는 이벤트가 발생하면 전환된다.

 

Protection Ring

Protection Ring은 권한 계층을 나타내는 구조로, 가장 안쪽인 Ring 0에는 권한이 가장 높은 커널이 위치한다.
바깥쪽으로 갈수록 권한이 낮아지며, 각 링에 따라 실행 가능한 명령어의 종류가 다르다.

'CS > OS' 카테고리의 다른 글

[OS] 시스템 콜 (System Call)  (1) 2024.12.14
[OS] 인터럽트 (Interrupt)  (0) 2024.12.12
[OS] 프로세스  (0) 2024.12.11
[OS] 운영체제란?  (0) 2024.12.11
[OS] SSD  (0) 2024.05.24

블로그의 정보

공부중임

구설구설

활동하기