인터럽트(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
'OS' 카테고리의 다른 글
[OS] Lecture 4. Thread management (0) | 2022.02.05 |
---|---|
CPU, Main Memory(Primary Memory), Disk(Secondary Memory) (0) | 2022.02.02 |
[OS] Lecture 3. Process Management (1/2) (0) | 2022.01.30 |
[OS] Lecture 2. OS Overview (2/2) (0) | 2022.01.26 |
[OS] Lecture 2. OS Overview (1/2) (0) | 2022.01.26 |