1. 이중모드
- 한 컴퓨터를 여러 사람이 동시에 사용하는 환경
- 또는, 한 사람이 여러 개의 프로그램을 동시에 사용하는 환경
위와 같은 환경에서 한 사람/프로그램의 고의/실수가 전체에 영향을 끼칠 수 있다. EX) STOP, HALT, RESET 등
그래서 사용자 프로그램의 STOP 등 치명적인 명령의 사용을 불가능하게 만든다.
이러한 맥락에서 나온 것이 바로 이중모드이다.
- 이중모드(dual mode)
- 사용자(user) 모드 vs 관리자(supervisor) 모드
- 관리자모드 = 시스템모드 = 모니터모드 = 특권모드
- Supervisor, system, monitor, privileged mode
특권 명령(privileged instructions)
- STOP, HALT, RESET, SET_TIMER, SET_HW
1) 이중 모드(dual mode)
- 레지스터에 모드를 나타내는 플래그(flag)
- 운영체제 서비스가 실행될 때는 관리자모드
- 사용자 프로그램이 실행될 때는 사용자 모드
- 하드웨어/소프트웨어 인터럽트 발생하면 관리자 모드
- 운영체제 서비스가 끝나면 다시 사용자 모드
일반적인 프로그램 실행
- 프로그램 적재(on memory)
- user mode > (키보드, 마우스) > system mode(ISR) > user mode > (모니터, 디스크, 프린터) > system mode(ISR) > user mode
2. 하드웨어 보호
이중 모드는 보호(protection)와 관련이 있다.
1) 하드웨어 보호
- 입출력장치 보호 (Input/Output device protection)
- 메모리 보호(Memory protection)
- CPU 보호 (CPU protection)
a. 입출력장치 보호
사용자의 잘못된 입출력 명령은 다른 사용자의 입출력, 정보에 방해가 될 수 있다.
예: 프린트 혼선, 리셋 등
예: 다른 사람의 파일 읽고 쓰기(하드디스크)
해결법:
- 입출력 명력을 특권명령으로 : IN, OUT
- 입출력을 하려면 운영체제에게 요청하고 (system mode 전환)
- 운영체제가 입출력 대행, 마친 후 다시 user mode 복귀
- 올바른 요청이 아니면 운영체제가 거부
사용자가 입출력 명령을 직접 내린 경우엔 보통 O/S가 프로그램을 강제종료시킨다.
(= Privilege Instruction violation, 특권 명령을 침범했다)
b. 메모리 보호
다른 사용자 메모리 또는 운영체제 영역 메모리 접근
- 우연히 또는 고의로
- 다른 사용자 정보/프로그램에 대한 해킹
- 운영체제 해킹
해결법:
- MMU를 두어 다른 메모리 영역 침범 감시하도록(Memory Management Unit)
- MMU 설정은 특권명령이므로 운영체제만 바꿀 수 있다.
다른 사용자 또는 운영체제 영역 메모리에 접근을 시도하는 경우엔 보통 O/S가 프로그램을 강제종료시킨다.
(= Segement violation)
c. CPU 보호
한 사용자가 실수 또는 고의로 CPU 시간을 독점할 경우 다른 사용자 프로그램의 실행이 불가능할 수 있다.
EX) while(n = 1)...
해결법:
- Timer를 두어 일정 시간 경과시 타이머 인터럽트
- 인터럽트 > 운영체제 > 다른 사용자 프로그램으로 강제 전환
'Programming > 운영체제' 카테고리의 다른 글
CPU 스케쥴링 알고리즘(1) - FCFS (0) | 2021.07.24 |
---|---|
프로세스 관리 (Process Management) (0) | 2021.07.23 |
운영체제 서비스 (0) | 2021.07.13 |
고등운영체제, 인터럽트 기반 운영체제 (0) | 2021.07.12 |
운영체제의 역사 (0) | 2021.07.11 |