본문 바로가기

컴퓨터과학(CS)/운영체제

이중모드, 하드웨어 보호

이중모드(dual)

한 컴퓨터를 여러명이 사용하거나 한 사람이 여러 프로그램을 사용할 때 한 사람의 실수가 전체에 영향을 줄 수 있기에 stop, HALT, RESET 등의 명령을 관리자만 가능하게 하는 것이다.

 

사용자 모드 vs 관리자 모드 = 시스템 모드 = 모니터 모드= 특권 모드

 

특권 명령(관리자 모드에서만 내릴 수 있음)

STOP, HALT, RESET, SET_TIMER, SET_HW

 

이러한 이중모드를 나타내는 비트를 register에 할당하여 이중모드를 나타낸다.

 

운영체제 서비스 실행될 때? 관리자 모드

사용자 프로그램 실행될 때? 사용자 모드

하드웨어와 소프트웨어 인터럽트 발생할 때? 관리자 모드

운영체제 서비스가 끝나면? 사용자 모드

 

swi를 사용하여 하드디스크 접근 지원 요청을 한다.

 

대부분 CPU는 이중모드를 지원한다. 사용자 모드에서 STOP 명령 시 내부 인터럽트를 통해 강제 종료시킨다.

 

하드웨어 보호 - 다중 프로그래밍, 다중유저시스템에서 보호받는 법

1. 입출력 장치 보호

사용자의 잘못된 입출력 명령으로 인해 다른 사람 입출력 방해 뿐 아니라, 프린트 혼선, 남의 정보에 접근(다른 사람 파일 읽기, 쓰기)를 해결하기 위해 입출력은 system 모드에서만 가능하게 한다.

 

특권 명령

in / 입력장치 명령

out/ 출력장치 명령

 

입출력 시 swi 명령을 CPU가 해당 인터럽트 처리, 올바른 요청이 아니면 운영체제가 거부한다. (올바른지 확인하는 인터럽트가 존재한다.)

 

만약 사용자가 직접 내리면?

privilleged instruction violation 

 

2. 메모리 보호

다른 사용자 메모리, 운영체제영역 메모리에 접근하여 해킹이 가능하다. 이것을 해결하기 위해 MMU로 다른 메모리 영역 침범을 감시한다.

 

이러한  MMU 설정은 특권 명령으로 운영체제만 바꿀 수 있다.

Address bus에 Register를 달고 범위를 체크한다. 범위를 넘어서면 CPU에 인터럽트 신호를 보낸다.

 

만약 다른 사용자 또는 운영체제 메모리 접근 시도시?

segment violation

 

3. CPU 보호

한 사용자가 고의/실수로 CPU 독점 시 다른 사용자의 프로그램의 실행이 불가능하기에 timer를 두어 일정 시간 경과시 타이머 인터럽트를 통해 운영체제가 다른 프로그램으로 강제 전환하도록 한다.

한 유저에게 묶여있지 않도록

'컴퓨터과학(CS) > 운영체제' 카테고리의 다른 글

프로세스 관리  (0) 2022.01.26
운영체제 서비스  (0) 2022.01.19
인터럽트(가로채기)  (0) 2022.01.14
고등 운영체제  (0) 2022.01.13
운영체제의 역사  (0) 2022.01.12