운영체제

[운영체제] 6. 이중모드와 보호

pobii 2022. 1. 26. 10:34

 

이중모드의 필요성

 

ATM기는 많은 사람들이 이용하는 큰 지갑이다. 그런데 어떤 사람이 나쁜 마음을 먹고 ATM기 안에 있는 돈을 훔치려 한다고 하자. 기계를 부수지 않고 쉽게 훔칠 수 있을까? 그가 ATM기 관리자가 아닌 이상 마음대로 돈을 빼내기 힘들다.

 

 

이처럼 여러사람이 한 기계를 사용할 때에는 한 사람의 잘못된 행동으로 인해 다른사람이 영향을 받는 것을 막아주어야 한다.

 

현재 컴퓨터 환경은 여러 사람이 동시에 한 컴퓨터를 사용하는 경우가 많다.(서버 컴퓨터) 

그리고 그 외에도 하나의 컴퓨터 내에서 여러 프로그램을 수행하는 것이 일반적이다. 이 때 특정 컴퓨터나 프로그램에서 잘못된 동작으로 인해 다른 컴퓨터(프로그램)가 영향을 받는다면 이는 매우 위험하다.

 

따라서 컴퓨터에도 ATM기 같은 기능이 필요하다.

그래서 만들어진 것이 '이중모드'다.

 

어떤 위험이 있을까?

ATM기는 돈을 훔쳐갈 위험이 있다. 그렇다면 컴퓨터에는 어떤 위험이 도사리고 있을까?

 

- 입출력 : 사용자가 다른 사용자의 데이터를 입출력하는 경우

내가 쓰지도 않은 메일이 보내져있거나 ppt발표를 하는 중에 갑자기 요상한 영상이 나오게 된다.

 

- 메모리 : 한 애플리케이션이 자신의 메모리 영역이 아닌 다른 메모리 영역에 침범하는 경우

이 경우가 해킹을 당하게 되는 요인이다.

 

- CPU : 사용자가 CPU를 독점하는 경우

while(1) 인 경우를 말한다. 한 프로그램의 무한 반복으로 인해 다른 프로그램을 수행하지 못한다.

 

 

이중모드란?

위 세가지 위험을 막기 위해 이중모드를 만들었다. 이중모드란, 말 그대로 모드를 둘로 나눈 것이다. 모드는 사용자(user)모드, 관리자(superviser)모드로 나뉜다. 평소 프로그램 실행할 때는 사용자 모드이며, 운영체제를 실행할 때는 관리자 모드이다. 관리자 모드로 전환되면 컴퓨터의 기능을 제한하거나 프로그램을 강제로 종료시킨다. 관리자 모드는 인터럽트의 발생으로 인해 시작되어 처리된다.

 

 

 

하드웨어 보호

그렇다면 어떻게 인터럽트를 발생시킬까?

위에서 다뤘던 위험 경우에 따라 처리 방식이 다르다.

 

- 입출력 보호 

입출력 장치를 운영체제가 맡고있기 때문에 입출력을 원할 때 운영체제에게 요청한다. 따라서 입출력을 할때마다 인터럽트가 발생해 관리자 모드로 바뀐다. 처리가 완료되면 다시 사용자 모드로 돌아온다.

 

 

- 메모리 보호 

MMU(Memory Management Unit)을 이용한다. 메모리(RAM)에 있는 프로그램은 각각 번지수가 있는데, 그 번지수 내에서만 메모리를 사용할 수 있다. 메모리에 접근 할때마다 MMU가 해당 번지수를 침범하여 접근하지 않았는지 확인한다. 번지수를 침범하여 접근하면 인터럽트를 발생시킨다.

 

 

- CPU 보호 

Timer를 두어 일정 시간이 지나면 타이머 인터럽트를 발생시킨다. 한 프로그램의 CPU 점유 시간이 비정상적으로 오래 걸리는 경우, 강제로 다른 프로그램으로 CPU를 전환시켜 줄 수 있다.

 

 

 

 

 

 

 

 

참고자료

https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-3.-%EC%9D%B4%EC%A4%91%EB%AA%A8%EB%93%9C%EC%99%80-%EB%B3%B4%ED%98%B8

 

[운영체제(OS)] 3. 이중모드와 보호

현재 컴퓨터 환경은 여러 사람이 동시에 한 컴퓨터를 사용하는 경우가 많다.(서버 컴퓨터) 그리고 그 외에도 하나의 컴퓨터 내에서 여러 프로그램을 수행하는 것이 일반적이다. 이 때 특정 컴퓨

velog.io