운영체제 이중모드, 하드웨어 보호
OS
2022.02.25.
1. 이중모드의 등장
한 컴퓨터를 여러 사람이 동시에 사용하는 환경에서의 문제점이 있을 수 있습니다. 혹은 한사람이 여러 개의 프로그램을 동시에 사용하는 환경에서의 문제점도 동일합니다.
- 한 사람의 고의/실수 프로그램이 전체에 영향을 미칩니다.
- STOP, HALT, RESET 등 사용자 프로그램은 STOP 등 치명적 명령 사용을 불가능하게 할 수 있어야합니다.
위와 같은 문제를 예방하기 위해서 CPU가 명령어를 해석할 때, 사용자 모드와 관리자 모드를 나누어 명령어 수행의 권한을 확인합니다.
-
사용자(user) 모드 vs 관리자(supervisor) 모드
-
이중 모드 (dual mode)
-
관리자 모드 = 시스템 모드 = 모니터 모드 = 특권 모드
-
Supervisor, system, monitor, priviliged mode
-
특권 명령 (privileged instructions) : 관리자 모드에서만 내릴 수 있는 명령들 입니다.
- STOP, HALT, RESET, SET_TIMER, SET_HW, … 등등
2. 이중모드란
CPU안에 있는 register의 flag를 통해 이중모드를 나타낼 수 있습니다. 대부분의 CPU는 이중모드를 지원함으로 명령의 안전을 보장합니다.
- 운영체제 서비스 실행될 때는 관리자 모드
- 사용자 프로그램 실행될 때는 사용자 모드
- 하드웨어/소프트웨어 인터럽트 발생할 때 관리자 모드
- 운영체제 서비스가 끝나면 다시 사용자 모드
일반적 프로그램에서 이중모드의 변경은 다음과 같습니다.
1. 프로그램 적재
2. User mode
3. 키보드 마우스 클릭 인터럽트
4. System mode(ISR)
5. User mode
6. 모니터, 디스크, 프린터 등을 통한 인터럽트
7. System mode(ISR)
8. User mode로 변경 후 반복
3. 하드웨어 보호
하드웨어를 보호 하기 위해 운영체제가 이중모드를 사용하는 방법에 대해 알아봅니다.
3-1. 입출력장치 보호(Input/output device protection)
사용자의 잘못된 입출력 명령이나 다른 사용자의 입출력, 정보 등에 방해가 있을 수 있습니다.
예를 들어 프린트 혼선이나, 리셋, 다른 사람의 파일 읽고 쓰기(하드디스크)등이 있겠습니다.
해결법:
- 입출력 명령을 특권명령으로: IN, OUT
- 입출력을 하려면 운영체제에게 요청하고 (system mode 전환)
- 운영체제가 입출력 대행을 한 이후 다시 user mode 복귀
- 올바른 요청이 아니면 운영체제가 거부
30분 부터 다시 시청