OS

[OS] Lecture 3. OS Process Management (2/2)

사랑우주인 2022. 1. 31. 18:30

인터럽트(Interrupt)

예상치 못한, 외부에서 발생한 이벤트

 

인터럽트 처리과정

1. 인터럽트 발생

2. (커널 개입) 프로세스 중단

3. 인터럽트 처리(핸들링)

3.1. 인터럽트 발생 장소, 원인 파악

3.2  인터럽트 서비스 할 것인지 결정

4. 인터럽트 서비스 루틴 호출

 

 

인터럽트 서비스 호출 

- context saving 발생

- context saving= 책갈피. 흐름을 저장. PCB에 저장

 

커널의 개입

-프로세스 중단. 인터럽트 발생 장소, 원인 파악

- 파악 완료 후? 인터럽트 서비스 호출

- 서비스 호출의 의미는? 일종의 프로그램. 인터럽트를 처리하는 프로세스 CPU 할당

- 인터럽트 프로세스 종료 후? 중간에 중단됐던 프로세스가 CPU 할당? No!

- queue에서 ready 상태로 기다리고 있는 프로세스가 CPU 할당

 


context

프로세스와 관련된 정보 집합. 두 곳에 저장

- CPU register context-> in CPU

- code& data, stack, PCB-> in memory

 

context saving

인터럽트 발생-> 현재 프로세스(인터럽트 서비스 프로세스 아님!)의 register context을 메모리(PCB)에 저장하는 작업

 

context restoring

register context를 프로세스에 복구하는 작업

 

context switching

- context saving+ context restoring

- context switching= process switching

 

context switching overhead

context switching에 소요되는 비용

- OS마다 다르다.

- OS의 성능에 큰 영향 준다(커널의 개입)

- 해결책: thread