❗ 이중모드

os에는 이중모드가 존재한다. 일반적으로 user mode와 system mode이다. 두 모드의 차이는 무엇일까? 바로 priviledge instruction의 허용여부이다. system mode에서는 priviledge instruction을 허용하지만 user mode에서는 허용되지 않는다.

 

그렇다면 priviledge instruction(특권 명령)이란 무엇일까?

 

priviledge instruction

os에는 stop, timer, interrupt, in, out와 같은 priviledge instruction(특권 명령)이 존재한다. 이러한 명령들을 따로 분류해놓지 않을 경우, 일반 프로세스에서 이를 남용할 가능성이 있다. 원활한 실행을 돕기 위해 특권명령이 존재한다.

 

이중모드의 구현방식

cpu register 안에는 carry, overflow 같은 flag들이 존재한다. 이처럼 이중모드를 구분하는 flag를 둔다. OS가 실행될때만 이중모드의 flag를 1로 하고 나머지의 경우 0으로 두는 등의 방식으로 구현된다.

 

❗ HW보호

Application에서 HW와 관련한 작업들을 시도할 때는 모두 OS를 거처 수행된다. HW를 보호하고 원활한 실행을 도모하기 위해서이다.

 

1. I/O보호(OS)

여러 Process에서 동일한 I/O 자원(disk, printer 등)에 접근을 시도한다면 상당히 혼잡해질 것이다. 작업의 혼선을 방지하고 권한 밖에 일을 하지 못하도록 막기위해 I/O와 관련된 명령들을 priviledge instruction으로 설정한다. 모든 process는 OS를 통해 IO에 접근하게 된다.

 

2. Memory 보호(MMU)

어떤 process가 다른 process 혹은 OS의 메모리 영역에 침범하는 것을 방지한다. CPU와 메모리 사이에서 MMU(memory management unit)을 통해 구현된다. process가 자신의 권한 밖의 영역 접근을 시도하는 경우 MMU에서 CPU에게 interrupt를 발생시킨다.

 

3. CPU보호(Timer)

어떤 process가 고의적을 CPU자원을 독점하는 것을 방지한다. OS에서 Timer를 두어서 일정시간이 지나면 interrupt를 걸어 다른 process에게 CPU자원이 할당되도록 한다.

'Operating system' 카테고리의 다른 글

[운영체제] 인터럽트 기반 운영체제  (0) 2022.12.20

+ Recent posts