반응형
SMALL

오늘은 이중동작모드에 대해 포스팅해보려고 한다. 이걸 이해하는데 솔직히 좀 시간이 걸렸다. 생소한 용어기도 하고.. 전개되는 과정이 생각보다 많이 복잡해서 개인적으로 시간이 좀 걸렸다. 


1. 이중동작모드란?


- 쉽게 말해 운영체제를 보호하기 위한 기법으로 사용자모드와 커널모드 이 2가지로 분류가 된다. 사용자모드에서 불법적인 명령을 통해 운영체제를 해킹하고 시스템의 위협을 방지하기 위해 사용자모드와 커널모드로 분류해서 운영체제를 운영할 수 있게 했다.

- 사용자모드에서 불법적인 명령을 실행하게 되면 하드웨어는 운영체제로 트랩을 발생시키게 되면서 커널모드에 접근할 수 없다.


2. 이중동작모드의 구조?


<출저: operating system concept>


- 사용자모드와 커널모드로 구분할 수 있으며 운영체제를 위한 작업과 사용자를 위한 작업을 할 수 있다. 모드비트라는 비트가 추가되었는데 하나의비트가 현재의모드를 나타내기 위해 추가되었다. 사용자모드로 전환되면 모드비트가 1이 되고 커널모드로 전환되면 모드비트는 0이된다.

- 컴퓨터시스템에서 사용자 응용을 위해 사용되는 거라면 사용자모드로 유지하게 되지만 사용자응용이 운영체제로부터 서비스를 요청하게 된다면 커널모드로 전환이 된다.(모드비트가 0이됨)

- 또하나 공부한 것은 시스템 부팅시 하드웨어는 커널모드에서 시작되는데 그다음은 운영체제가 적재되고 사용자모드에서 사용자프로세스가 시작되게 된다. 트랩이나 인터럽트가 발생할때마다 하드웨어는 커널모드로 전환을 하게 된다. 그래서 대표적으로 컴퓨터가 제어를 얻을때 항상 커널모드로 있게 된다.

- 사용자모드에서 불법적인 명령을 실행하지 못하게 해놓음으로써 하드웨어는 커널모드에서만 특정한 명령이 실행될 수 있게끔 해놨다. 결국 해커들이 시스템쪽 해킹을 하려면 커널모드 보안부터 뚫어야 가능하다는 이야기인데 과연 빌게이츠가 그렇게 허무하게 뚫리게 윈도우os를 만들었을지는 상상에 맡기고 싶었다.

- 결론적으로 사용자모드에서 특권명령을 시도하려고 들면 하드웨어는 이를 실행하지 않고 불법명령으로 간주해버리고 운영체제에 트랩을 건다. 


3. 시스템 호출이란?

- 응용프로그램의 요청에 따라 커널에 접근하려는 인터페이스

- 시스템호출은 컴퓨터시스템의 처리기가 지원하는 기능에 따라 다양하게 호출된다.

- 운영체제에 의해 실행될 동작을 사용자 프로세스가 요청할 수 있게 하는것이 시스템 호출이다.

- 인터럽트 벡터의 특정위치로 트랩을 거는 형태를 취한다.


* 커널모드에서 시스템호출을 받게 되면 어떤 인터럽트가 발생이 되었는지, 어떤 명령이 왔는지 인지하고 검사를 하는 과정을 거친다. 이때 전달된 인자가 사용자 프로그램이 요청하는 서비스 타입을 표시하게 된다. 커널은 항상 이렇게 정확하게 인자를 합법적인지 검증하고 검사하는 절차를 거치고나서 제어를 시스템호출 다음 명령으로 복귀시킨다.




반응형
LIST

'운영체제 ' 카테고리의 다른 글

명령해석기  (0) 2017.01.30
운영체제서비스  (0) 2017.01.30
멀티프로세싱(Multi Processing)이란?  (0) 2016.09.20
임계구역(Critical section)  (0) 2016.09.11
Context Switching  (0) 2016.09.08
블로그 이미지

만년필석사

,