CPU 모드

CPU modes

CPU 모드(프로세서 모드, CPU 상태, CPU 권한 수준 및 기타 이름이라고도 함)는 CPU가 실행하는 특정 프로세스에 의해 수행될 수 있는 운영의 종류와 범위에 제한을 두는 일부 컴퓨터 아키텍처중앙 처리 장치에 대한 운영 모드다. 설계는 운영체제를 응용 소프트웨어보다 더 많은 권한으로 실행할 수 있게 한다.

이상적으로는 신뢰도가 높은 커널 코드만 제한되지 않은 모드에서 실행할 수 있다. 다른 모든 것(운영 체제의 비감독적 부분 포함)은 제한 모드에서 실행되며, 시스템을 손상시키거나 손상시킬 수 있는 모든 작업을 커널이 대신 수행하도록 요청하기 위해 시스템 호출을 사용해야 한다.신뢰할 수 없는 프로그램이 다른 프로그램(또는 컴퓨터 시스템 자체)을 변경하거나 손상시킬 수 있다.

그러나 실제로 시스템 호출은 시간이 걸리고 컴퓨팅 시스템의 성능을 해칠 수 있으므로 시스템 설계자가 일부 시간에 중요한 소프트웨어(특히 장치 드라이버)를 전체 커널 권한으로 실행할 수 있도록 허용하는 것은 드문 일이 아니다.

하이퍼바이저가 그 아래에서 여러 운영 체제 관리자를 실행할 수 있도록 하는 다양한 모드를 구현할 수 있으며, 이는 현재 사용할 수 있는 많은 가상 시스템 시스템의 기본 설계인 것이다.

모드 종류

제한되지 않은 모드를 커널 모드라고 하는 경우가 많지만, 다른 많은 지정(마스터 모드, 감독자 모드, 특권 모드 등)이 존재한다.제한 모드는 일반적으로 사용자 모드라고 부르지만, 다른 많은 이름(슬레이브 모드, 문제 상태 등)으로도 알려져 있다.

커널
커널 모드에서 CPU는 아키텍처에 의해 허용된 모든 작업을 수행할 수 있으며, 모든 명령이 실행될 수 있고, I/O 작업이 시작되며, 모든 메모리 영역이 액세스되는 등의 작업을 수행할 수 있다.다른 CPU 모드에서는 CPU 운영에 대한 특정 제한이 하드웨어에 의해 시행된다.일반적으로 특정 지침(특히 I/O 작동을 포함하여)은 허용되지 않으며, 일부 메모리 영역은 액세스할 수 없다.CPU의 사용자 모드 기능은 일반적으로 커널 모드에서 사용할 수 있는 기능들의 하위 집합이지만, 비원천 아키텍처의 하드웨어 에뮬레이션과 같은 경우에 표준 커널 모드에서 사용할 수 있는 기능과는 상당히 다를 수 있다.
사용자
일부 CPU 아키텍처는 여러 사용자 모드를 지원하며, 종종 권한 계층을 가지고 있다.이러한 아키텍처들은 종종 커널 모드를 중심에 두고 권리의 계층 구조에서 동심원 링 집합과 유사한 링 기반 보안을 가지고 있다고 한다.다중 시스템 하드웨어는 링 보안의 첫 번째 중요한 구현이었지만, 많은 다른 하드웨어 플랫폼은 Intel 80286 보호 모드와 IA-64를 포함하여 유사한 라인을 따라 설계되었다.

모드 보호는 CPU 하드웨어 자체 이상의 리소스로 확장될 수 있다.하드웨어 레지스터는 CPU의 현재 작동 모드를 추적하지만 추가 가상 메모리 레지스터, 페이지 테이블 항목 및 기타 데이터는 다른 리소스의 모드 식별자를 추적할 수 있다.예를 들어 CPU 자체에서 상태 워드로 표시되는 링 0에서 CPU가 작동할 수 있지만, 모든 메모리에 대한 모든 액세스는 액세스 대상이 되는 가상 메모리 세그먼트에 대한 별도의 링 번호 및/또는 대상인 물리적 페이지(있는 경우)에 대한 링 번호에 대해 추가로 검증될 수 있다.이것은 PSP 핸드헬드 시스템으로 증명되었다.

Popek Goldberg 가상화 요구 사항을 충족하는 하드웨어는 가상 머신을 효율적으로 지원하는 쓰기 소프트웨어를 훨씬 더 단순하게 만든다.이러한 시스템은 감독자 모드에서 실행 중이지만 실제로 사용자 모드에서 실행 중인 소프트웨어를 실행할 수 있다.

참조