728x90
반응형
출처 : https://www.youtube.com/watch?v=MJTr37lgaMA&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=6
인터럽트(Interrupt)
- 예상치 못한, 외부에서 발생한 이벤트
- Unexpected, external events
- 인터럽트의 종류
- I/O interrupt
- Clock interrupt
- Console interrupt
- Program check interrupt
- Machine check interrupt
- Inter-process interrupt
- System call interrupt
인터럽트 처리 과정
- 인터럽트가 발생하면 커널이 개입해서 내가 작업중이던 프로세스를 중단시킨다.
- 발생한 인터럽트를 처리한다(Interrupt handling).
- 인터럽트 발생 장소(인터럽트가 어디서 발생했는지), 원인 파악
- 인터럽트 서비스 할 것인지 결정(인터럽트를 처리할 것인지 무시할 것인지 결정)
- 인터럽트 서비스 루틴(Interrupt service routine) 호출 (처리하기로 결정했으면 처리)
- 처음에 프로세서에 Pi 라는 프로세스가 동작하고 있다.
- Interrupt가 발생한다.
- Pi를 중단시키고 현재까지 진행한 상태를 PCBi 에 저장한다.(Context Saving)
- 커널이 개입해서 Interrupt가 어디서 발생했고, 왜 발생했는지 원인을 파악한다.(Interrupt handling)
- 원인을 파악한 뒤, 어떤 ISR(Interrupt Service Routine)을 호출해야 되는지 결정한다.(Interrupt service)
- 프로세스 Pi가 중단되어서 비어있는 프로세서에 ISR을 넣어서 동작시킨다.
- 프로세스 Pis가 처리되고 비어있는 프로세서에 스케줄에 따라 레디 상태에 있던 프로세스(Pj) 중 하나를 집어넣는다. 즉, PCBj에 있던 프로세스 Pj를 복구해서 프로세서에 집어넣는다.(Context restoring)
- 프로세스 Pj가 수행된다.
문맥 교환 (Context Switching)
- Context
- 프로세스와 관련된 정보들의 집합, 이 정보 집합은 2 곳에 저장된다.
- CPU register context -> in CPU
- Code & data, stack, PCB -> in memory (주 기억장치 DRAM)
- 프로세스와 관련된 정보들의 집합, 이 정보 집합은 2 곳에 저장된다.
- Context saving
- 현재 프로세스의 Register context를 메모리 안의 PCB에 저장하는 작업
- Context restoring
- 메모리 안의 PCB에 저장되어있던 Register context를 프로세스로 복구하는 작업
- Context switching (context saving과 context restoring을 묶음) = Process switching
- 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일 (Pi를 PCBi에 저장하고 PCBj에 있던 프로세스 Pj를 프로세서에 집어넣음 = 프로세스를 교환)
- 커널의 개입으로 이루어짐
- 실행 중인 프로세스의 context를 저장하고, 앞으로 실행 할 프로세스의 context를 복구하는 일 (Pi를 PCBi에 저장하고 PCBj에 있던 프로세스 Pj를 프로세서에 집어넣음 = 프로세스를 교환)
Context Switch Overhead
- Context switching에 소요되는 비용
- OS마다 다름
- OS의 성능에 큰 영향을 줌 (프로세스가 굉장히 많기 때문에 context switching이 자주 일어나게되기 때문)
- 불필요한 Context switching을 줄이는 것이 중요
- ex) 스레드(Thread) 사용 등
728x90
반응형
'Study > 운영체제' 카테고리의 다른 글
5. 프로세스 스케줄링 (1) (0) | 2023.11.06 |
---|---|
4. 스레드 관리 (0) | 2023.11.03 |
운영체제 3. 프로세스 관리 (1) (0) | 2023.11.02 |
2. 운영체제 개요 (3) (0) | 2023.11.02 |
2. 운영체제 개요 (2) (1) | 2023.11.01 |