본문 바로가기
운영체제

운영체제 3장 - 이중 모드 및 하드웨어 보호 -

by ChocoPeanut 2017. 4. 16.

운영체제 3

- 이중 모드 및 하드웨어 보호 -

 

컴퓨터를 사용하는 환경은 다양하다. 특정 사람이 특정 컴퓨터만 사용하는 경우도 있겠지만 한 컴퓨터를 여러 사람이 동시에 사용하거나 한 사람이 여러 개의 프로그램을 동시에 실행하는 경우 한 사람의 고의 또는 실수로 다른 프로그램 전체가 영향을 받을 수 있는 환경이 만들어진다. 예를 들면 많은 사용자들이 같은 컴퓨터를 사용하고 있는데 특정 사람의 stop(컴퓨터 강제 종료) 명령어 실행하는 프로그램을 갑자기 실행시키면 모든 사용자가 하던 작업이 종료되어 큰 영향을 끼칠 수 있다. 이런 문제가 발생하지 않기 위한 보호 장치가 바로 이중 모드이다. 이중 모드는 사용자 모드관리자 모드로 두 가지의 모드를 가지고 있어서 이중 모드이다. 사용자 모드는 단순한 사용자 프로그램을 작동시키는 모드인 반면 관리자 모드는 시스템이 내리는 명령어, 프로그램을 작동시킬 때 작동하는 모드이다. 관리자 모드는 특권 명령어라는 것을 가진다. 특권 명령어는 사용자 프로그램이 사용할 수 없는 명령어로 Stop과 같이 환경에 치명적 영향을 끼칠 수 있는 명령어를 의미한다.


레지스터에 모드를 나타내는 플래그가 존재하는데 01을 값을 통해 관리자 모드인지 사용자 모드인지를 판단한다. 운영체제 서비스가 실행될 때나 하드웨어/소프트웨어 인터럽트가 발생하는 때인 시스템 관련 환경에서는 관리자 모드이고 사용자 프로그램을 실행하는 경우에는 사용자 모드로 존재한다.


일반적으로 프로그램을 실행하면 프로그램이 메모리에 적재되는데 사용자 모드에서 실행을 하다가 I/O 관련 명령어가 들어오면 관리자 모드로 들어가 하드웨어 인터럽트를 발생시키게 되고 작업이 끝나면 다시 사용자 모드로 돌아오게 된다. 또한 운영체제 관련한 명령어가 필요할 경우 다시 관리자 모드로 바뀌어 실행을 시키고 끝날 시 사용자 모드로 돌아온다. 이러한 과정을 거칠 때 운영체제는 특권 명령을 실행시켜도 되는지에 대한 판단을 하고 명령어를 실행시킨다. 만약 특권 명령어를 실행하는 것이 옳지 못한 명령어의 경우 에러 메시지를 보내 실행 할 수 없음을 나타낸다.





특히 하드웨어 보호에 큰 역할을 담당하는데 입출력 장치 보호, 메모리 보호, CPU 보호 이렇게 세 가지로 나눌 수 있다.


입출력장치(I/O) 보호는 사용자의 잘못된 입출력 명령어를 제어한다. 다른 사용자와 동시 사용하는 것을 막기 위해 입출력 명령을 특권 명령어로 하여 IN, OUT 이라는 명령어가 존재한다. 입출력 장치를 사용하기 위해서는 운영체제에 입출력을 하고 싶다는 것을 요청하고 관리자 모드로 운영체제가 입출력을 실행시켜주면 일이 끝난 후 사용자 모드로 돌아오게 된다. 만약 다른 사용자가 사용할 경우 올바른 요청이 아니므로 운영체제가 거부를 하게 된다.


메모리 보호를 위한 역할은 다른 사용자가 메모리 또는 운영체제 영역 메모리를 접근할 경우를 막기 위한 작업이다. 특히 해킹에 관련된 부분이 많이 작용을 한다. 이를 제어하기 위해 MMU(Memory Management Unit)를 두어 다른 메모리 영역 침범하는 것을 감시하는 장치를 놓는다. MMU는 각 사용자마다 할당 받을 수 있는 메모리 공간의 영역을 정하여 다른 사용자는 침범을 할 수 없게 만든다. 이러한 설정은 특권명령어로 운영체제만 바꿀 수 있다.


CPU 보호는 한 사용자가 CPU 시간을 독점하는 것을 막는다. CPU 시간을 독점하게 되면 다른 사용자는 프로그램 실행이 불가하므로 Timer를 두어 일정 시간 경과시 타이머 인터럽트를 발생시켜 운영체제가 다른 프로그램으로 강제 전환하는 방법을 취한다.