운영체제
인터럽트(interrupt)
bmsk_kun
2022. 7. 21. 19:08
인터럽트(interrupt)
CPU의 process 실행 중, I/O device나 exception 등의 이벤트가 발생하면 해당 작업을 먼저 수행하도록 하는 것
External Interrupt
프로그램 외부 상황에 따라 발생 시점이 일정하지 않게 발생한다.
hardware interrupt
비동기식 interrupt
- I/O Interrupt, Timer Interrupt 등
Internal Interrupt
프로그램 내에서 발생하는 interrupt로 CPU로부터 발생하는 운영오류 등을 포함한다.
softeware interrupt
동기식 interrupt
- divide by zero, overflow 등
Interrupt 처리 과정
1. interrupt 요청 신호 발생
- 프로그램 실행 도중 interrupt가 발생한 장치는 CPU에 interrupt 요청 신호를 전달한다.
2. interrupt 단계
- CLI를 실행해 해당 interrupt 처리를 완료할 때까지 다른 interrupt 요청을 수락하지 않는다.
- CPU는 interrupt가 발생한 장치에 interrupt 요청에 대한 확인으로 interrupt 응답 신호를 전달한다.
- interrupt vector를 통해 해당 interrupt service routine을 찾는다. (interrupt vector는 모든 interrupt sevice routine의 start address를 가지고 있다) -> interrupt service routine의 start address를 알게된다.
- 현재 실행중인 프로그램을 중단해 상태를 저장하고 interrupt service routine의 정보를 저장한다.(context switch)
3. interrupt service routine / interrupt handler 실행
- 해당 interrupt를 처리하기 위해 mapping되어 있는 routine을 실행
- STI를 실행해 다른 interrupt 요청을 수락할 수 있도록 설정
4. 리턴
- interrupt 발생 이전 실행하던 프로그램을 다시 실행
728x90
반응형