본문 바로가기

OS

2. 이중모드 (Dual Mode)

*kocw.net에 올라온 경성대학교 양희재 교수님의 운영체제 수업을 정리하는 글입니다. OS의 아주아주 기초적인 내용을 정리합니다. 아직 부정확하고 부족한 부분이 만습니다. 잘못된 부분이 있다면 댓글 부탁드립니다. 감사히 배우겠습니다.

 

 

 

 

 

한 컴퓨터를 여러 사람이 동시에 사용하는 환경이나 한 사람이 여러 개의 프로그램을 동시에 사용하는 경우에

한 사람이 고의나 실수를 해서 프로그램 전체에 영향을 미치는 경우가 생길 수 있다. (STOP, HALT, RESET같은 명령어를 사용한 경우..) 그러니 사용자 프로그램이 STOP과 같은 치명적인 명령어를 사용하지 못하게 해야 한다.

그래서  CPU에는 사용자(user) 모드와 관리자(supervisor)모드 두 가지가 있는 것이다.

(관리자 모드는 시스템 모드, 모니터 모드, 특권 모드라고도 불린다.)

 

 

 

*특권 명령(privileged instructions)

은 관리자 모드에서만 내릴 수 있는 명령으로  STOP, HALT, RESET, SET_TIMER, SET_HW 등이 있다.

(CPU를 중단시키거나 멈추거나 다시 시작, 하드웨어가 가지고 있는 값을 바꾸는 등등의 명령어)

-이중 모드를 통해서 사용자 프로그램이 함부로 이런 위험한 명령에 접근하지 못하도록 한다!

 

 

 

 

 

그렇다면 컴퓨터 이중모드는 어떻게 구현할까?

Register는 Bit들의 모음인데 여기에 이중모드를 나타내는 비트를 추가한다.

만약 비트 값이 1이면 모니터 모드, 0이면 사용자 모드를 의미.

 

 

 

 

전원을 켜면 OS부팅 시작. 이 때는 비트 값이 1로 모니터 모드이다.

부팅이 끝난 후 우리가 마우스를 사용해서 게임 프로그램 아이콘을 더블클릭하면

OS가 프로그램을 메모리로 올려주고, CPU 레지스터에 비트를 0으로 바꿔서 사용자 모드로 전환.

게임을 하던 도중 현재까지의 스코어를 하드디스크에 저장하고 싶다면? 

게임, 즉 user program이 직접 하드디스크에 접근할 수는 없다. 게임 프로그램이 OS에 부탁해서

software interrupt가 일어나고 OS 속 ISR 코드로 점프! 이때 다시 비트가 1로 바껴 모니터 모드가 된다. 

 

 

 

OS 실행, 하드웨어/소프트웨어 인터럽트 발생 -> 관리자 모드

사용자 프로그램 실행, OS 서비스 끝 -> 사용자 모드

 

 

 

 

 

 

 

 

 

 

'OS' 카테고리의 다른 글

1. 인터럽트  (0) 2020.05.17
0. 운영체제 서론  (0) 2020.05.17