x86 명령어 집합에서 권한 수준(privilege level)은 프로세서에서 현재 돌아가고 있는 프로그램의 자원(메모리 영역, I/O 포트, 특별한 명령어 등)에 대한 접근을 제어한다. 4가지 권한 수준이 존재하는데 가장 높은 권한인 0부터 가장 낮은 권한인 3까지이다. 현대 운영 체제는 커널을 위해 레벨 0을 사용하고 애플리케이션 프로그램을 위해 레벨 3을 사용한다. 레벨 n에서 사용할 수 있는 어느 자원도 레벨 n 이상부터 레벨 0까지에서도 사용할 수 있으며 그래서 권한 수준들을 보호 링이라고 한다. 낮은 권한의 프로세스가 높은 권한의 프로세스에 접근하려고 할 때 일반 보호 장애(GPF : General Protection Fault)가 OS에 의해 발생한다.

인텔 x86 마이크로프로세서의 권한 수준 순서.

네 가지 권한 수준을 모두 사용할 필요는 없는데, 현대 운영 체제들 대부분은 페이징 메커니즘을 사용하며 페이징은 권한 수준을 정의하는 오직 1 비트(U/S 비트)만 갖기 때문이다. 윈도우 NT는 2 레벨 시스템을 사용하였다.[1] 8086에서 리얼 모드 프로그램들은 레벨 0에서 실행되며 8086 가상 모드에서는 모든 프로그램들이 레벨 3에서 실행된다.[2]

같이 보기 편집

각주 편집

  1. Russinovich, Mark E.; David A. Solomon (2005).
  2. Sunil Mathur, "Microprocessor 8086: Architecture, Programming and Interfacing" , Eastern Economy Edition, PHI Learning
  • Intel 80386 Programmer's Reference