본문 바로가기
교육, 학습/CS스터디_반효경 운영체제

운영체제 - 특권 명령과 일반 명령, mode bit, 모니터 모드, timer interrupt

by 개발하는 경제학도 2022. 1. 3.

강의 소개

현재 수강하고 있는 KOCW 내 이화여자대학교 운영체제(2017, 반효경) 강의의 내용을 정리하였습니다.

무료 강의로 운영체제 기본지식을 쌓고 싶으신 분들은 수강을 추천드립니다.


 

컴퓨터 시스템의 구조

 

컴퓨터의 내부장치로는 CPU, 메모리가 있고 외부에는 Disk를 포함한 I/O 장치들이 있다.

 

출처: 운영체제(이화여자대학교, 2017년 1학기 반효경)

 

device controller

각각의 장치들마다 작은 CPU들이 붙어있는데 이를 device controller라 한다.

이런 device controller들은 기계어를 연산한다.

예를 들어, Disk를 관리하는 작은 CPU는 디스크 컨트롤러라 한다. 

 

local buffer

device controller(작은 CPU들)와 마찬가지로 각각의 장치들마다 붙어있는 작은 메모리이다.

 

mode bit

CPU에서 기계어를 실행할 때 운영체제가 실행하는 것인지, 사용자가 실행하는 것인지 구분하기 위해서 사용하는 것이다.

- 모니터 모드(= 커널 모드, 시스템 모드): mode bit이 0 일 때를 말하며 운영체제가 CPU를 사용하는 상태이다. CPU가 운영체제 의해서 실행이 될 때는 믿고 CPU를 넘겨줄 수 있어 보안을 해칠 수 있는 중요한 명령어도 수행할 수 있다. (모든 작업 수행 가능한 상태이다)

- 사용자 모드: mode bit이 1일 때를 말하며 OS가 사용자 프로그램에게 CPU를 넘겨준 상태이다. 사용자 프로그램은 완벽히 믿을 수가 없다. 예를 들어 무한루프를 돌린다든지, 메모리를 무한정 잡아먹든지. 따라서 **위험한 기계어(즉, 특권 명령으로 아래에서 설명)는 사용하지 못하고 안전한 기계어만 실행할 수 있도록 제약이 있다.

 

** 위험한 기계어(특권 명령)

더보기

특권 명령과 일반 명령

- 특권 명령: 여기서 **위험한 기계어는 '특권 명령'으로 보안을 해칠 수 있는 중요한 명령어이다. 운영체제(= OS)만 사용할 수 있고 따라서 mode bit이 0일 때만 실행할 수 있다. OS는 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 세팅한다.

만약 실행되려는 기계어가 특권 명령인지 CPU가 확인한 후 mode bit이 0이 아니면 자동적으로 CPU가 운영체제로 넘어간다.

그때, CPU가 넘어가는 방법으로 **interrupt(아래에서 설명)와 Exception(위 상황과 같이, 사용자 프로그램이 권한이 없는 특권 명령을 실행하려고 할 때 자동적으로 CPU가 운영체제로 넘어가는 상황) 이 있다.

 

- 일반 명령: 이에 반해, 안전한 기계어인 일반 명령은 운영체제, 사용자 프로그램 모두가 사용할 수 있으며 따라서 mode bit이 0이나 1이나 실행될 수 있다.

 

** interrupt

더보기

CPU에는 interrupt line이 붙어있다. CPU는 기계어를 실행하기 전에 이곳에 interrupt가 발생되었는지 확인한다.

인터럽트: 느린 장치들에게 일을 시키고 CPU는 다른 일을 하다가, 느린 장치들이 일을 완료하면 CPU에게 인터럽트를 건다. 그러면 자동으로 CPU는 운영체제에 넘어가서 mode bit 이 0으로 바뀌고 운영체제가 CPU를 받아서 인터럽트 이후의 일을 수행할 수 있게 해 준다. 
(자세한 내용은 하단의 링크 글 참조)

2022.01.01 - [교육, 학습/CS스터디] - 운영체제 - 운영체제(OS)란

 

Registers(레지스터)

CPU는 기계어로 연산을 수행한다. 다양한 연산을 저장하기 위해서 빠르고 작은 크기의 Registers들이 CPU안에 들어있다.

Registers의 종류는 다양하다. 그중 program counter register는 다음번에 실행할 기계어의 메모리 주소를 갖고 있는 레지스터이다.

 

timer

사용자 프로그램이 CPU를 무리하게 사용하고 있을 때 운영체제가 이를 뺏어오도록 도와주는 부가적인 하드웨어이다. 즉, CPU에 대한 독점을 막기 위해 사용하는 하드웨어이다. 또한, 짧은 시간 간격으로 CPU를 나눠 쓸 수 있게 함으로써 time sharing을 위해서도 사용된다.

timer가 인터럽트를 발생시키는 과정

1) 운영체제가 사용자프로그램에게 CPU를 넘길 때 timer에 시간을 세팅해서 넘겨준다.

2) timer는 일정시간으로 인터럽트를 발생시킨다.(= timer interrupt).

3) 사용자 프로그램이 무한 루프를 도는 등 CPU를 계속 사용하고 있더라도 timer가 인터럽트를 발생시켜 운영체제로 CPU가 넘어가게 된다.

 

 

출처: 운영체제와 정보기술의 원리(반효경 )

댓글