상세 컨텐츠

본문 제목

1.5 운영체제 연산

Computer Science/OS Concepts

by RACC8N 2020. 4. 4. 16:57

본문

운영체제는 Interrupt-driven 동작을 수행

I/O 요청 -> hardware interrupt

Software error -> exception, trap (internal interrupt)

OS service 요청 -> system call (software interrupt)

 

많은 작업들이 컴퓨터 자원을 공유하여 실행되며 한 프로그램의 bug에 의해서 영향 받을 수 있음

(EX)무한루프, 다른 프로그램(다른 작업 또는 OS)의 메모리를 수정

 

따라서 자원공유는 Protection 기능을 필요로 함

프로그램이 잘못 동작하여 다른 프로그램이나 OS의 동작에 영향을 주는 것을 방지해야 함

 

Dual-Mode (Multi-mode) Operation

Dual mode operation

대부분의 CPU는 OS와 사용자 프로그램의 실행을 구분하기 위하여 두 개 이상의 동작 모드를 제공함

1. User mode

2. Kernel mode (Supervisor, monitor, system, privileged mode)

CPU mode bit가 현재의 동작 모드를 표시함 (EX) Kernel mode (0), User mode (1)

 

Multimode operation

CPU 동작 모드 개념은 더 많은 수의 mode로 확장 가능 (intel 386/Pentium : 4-level privilege)

가상화를 지원하는 CPU는 가상화를 위한 별도의 mode를 제공함 (AMD processor : host mode, guest mode)

특권 명령어 (Privileged Instruction)

Kernel mode에서만 실행가능한 instruction

User mode에서 실행되면 exception 발생 -> privilege violation

CPU는 시스템 동작에 영향을 주는 명령어를 특권명령어로 설계함

 

EX) I/O Instruction, Timer, interrupt관리, 메모리 관리장치(MMU)관리, 시스템 제어 (halt, interrupt 활성화 등)

User mode Kernel mode
User 프로그램 실행 OS 실행
특권 명령어 실행 불가 특권 명령어 실행 가능
일부 메모리 공간 접근 불가 모든 메모리 공간 접근 가능

CPU 동작모드 전환 

1. Power on : kernel mode에서 시작

2. OS가 적재되어 실행되면, 사용자 프로세스를 user mode에서 시작하게 함

3. Interrupt가 발생하면 Kernel mode로 전환됨

4. Interrupt로부터 return되면 원래의 동작모드로 전환됨

Dual mode를 제공하지 않는 CPU는 보호기능이 제공되지 않음

- 운영체제 동작이 사용자 프로그램에 의해서 영향 받을 수 있음

- EX) Intel 8088과 MS-DOS

 

시스템 호출 수행 과정 

1. System call 명령어 호출 : INT, trap, syscall 등

2. OS의 해당 system call 서비스 루틴이 kernel mode에서 실행

3. 서비스 루틴은 parameter를 유효성을 검증하고, 서비스를 수행

4. 서비스 수행 종료 후 return from interrupt 명령어 실행 -> system call 다음의 명령어로 실행 제어 전달이 이루어짐

※ 파라미터 유효성 검사를 하는 이유 : 잘못되면 프로그램 뿐만 아니라 os전체에 영향을 주기 때문(커널모드여서)

 

Timer와 CPU Protection

 

CPU Protection 

- Timer  사용 : 무한 루프 방지, 특정 process의 CPU 독점 방지

 

Timer interrupt

- Timer는 지정된 기간 후에 interrupt

- OS가 timer(counter)를 설정함

- Timer가 매 클럭마다 감소하여, 0이 될 때에 interrupt가 발생

 

Timer 용도

- Timer interrupt를 사용한 time sharing 구현

- 시계 : 현재 시간 계산

 

'Computer Science > OS Concepts' 카테고리의 다른 글

1.10 커널 자료구조  (0) 2020.04.04
1.6 ~ 1.9 자원 관리 (Process, Memory, Storage)  (0) 2020.04.04
1.4 운영체제의 구조  (0) 2020.04.04
1.3 컴퓨터 시스템 구조  (0) 2020.04.04
1.2 컴퓨터 시스템의 구성  (0) 2020.04.04

관련글 더보기

댓글 영역