<운영체제>Interrupt and Polling
본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성되었습니다.
<Interrupt Comparison>
-
External Interrupt(외부 인터럽트)
- 비동기적(asynchronous) : 키보드의 ctrl + c 처럼 컴퓨터 내부의 clock과 상관없이 발생
- 컴퓨터 시스템 외부에서 발생!
-
Internal Interrupt(내부 인터럽트)
- Fault : 현재 명령어 저장 -> ISR -> fault를 발생시킨 명령으로 다시 돌아옴
ex) page fault, memory space fault - Trap : 현재 명령어 저장 -> ISR -> trap을 발생시킨 다음 명령어로 돌아간다.
ex) system call(함수 호출), exception handling(예외처리) - Abort : ISR -> 현재 작업 자체를 취소한다(심각한 수준)
ex) divided by zero 등
- Fault : 현재 명령어 저장 -> ISR -> fault를 발생시킨 명령으로 다시 돌아옴
<Interrupt Handling>
- The operating system preserves the state of the CPU by storing registers and the program counter. -> 현재 진행 중인 상태를 레지스터에 저장한다.
- Vectored Interrupt System
: 앞에서 나온 intrrupt를 이용하여 컴퓨터에서 발생한 이벤트를 처리하는 방식 - Polling System
: Determines state of device through handshaking, busy waiting -> CPU가 해당 디바이스 계속 관찰하면서 상태를 체크하는 방식- 장점 : fast response, no context switching overhead(작업 변환시 소요되는 시간이 없다.)
- 단점 : waste of CPU cycle
- 요구조건 : 빠른처리속도의 I/O device, 짧은 I/O service routine, 드물게 발생하는 이벤트여야 polling이 유리함