1. 사용자 모드, 커널 모드
ㅇ 운영체제와 사용자 프로그램은, 하드웨어,소프트웨어 자원을 공유함에 따라,
- 올바른 실행 보장을 위해, 다음과 같이 둘을 구분(차별화)할 수 있도록 함
ㅇ 2개의 독립된 모드로 구분시킴
- 사용자 모드 (user mode) or 보호 모드
. 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용 못함
. 응용 프로그램이 이 모드로 동작함
- 커널 모드 (kernel mode) or 수퍼바이저 모드 or 시스템 모드 or 특권 모드(previleged mode)
. 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용 가능
. 운영체제가 이 모드로 동작함
ㅇ 이를 지원토록, 현재의 모드를 나타내기 위한, 모드 비트를 컴퓨터 하드웨어(CPU)에 추가함
- 사용자 모드 (1), 커널 모드 (0)
ㅇ 따라서, 시스템 보호를 위해, 개념적으로 영역(공간) 분리되어 실행됨
- 사용자 공간 : 메모리 일부, 안전한 CPU 작업 일부, 하드웨어 일부 등 제한적임
. 프로세스가, 사용자 모드로 실행 중이면, 사용자 공간에서 프로세스를 실행한다고 함
- 커널 공간 : 커널 만이 접근할 수 있는 메모리 및 하드웨어 모든 영역
2. 특권 명령 (privileged instruction)
ㅇ 일부 CPU 명령들을 특권 명령으로 지정하고, 커널 모드에서 만 실행되도록 함
ㅇ 만일, 사용자 모드에서 특권 명령 시도하면, CPU는 운영체제에 트랩을 걸게됨
ㅇ 특권 명령 例)
- 커널모드로의 전환, halt 명령, I/O 제어, 타이머 관리, 인터럽트 관리 등
ㅇ 사용자 모드에서 커널 모드로의 제어권이 전환되는 수단 : 인터럽트, 트랩, 시스템콜