정의
프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는것
지금 수행중인 일보다 더 중요한 일(ex. 입출력, 우선 순위 연산 등)이 발생하면, 그 일을 먼저 처리하고 나서 하던 일을 계속 해야한다.
ex) CPU 연산 수행 도중에 I/O 연산 필요 시, interrupt에 의해 수행 흐름 변경
인터럽트는 interrupted instruction의 주소를 PCB에 저장하여야 한다. (해당 프로그램을 재시작하기 위해서)
종류
외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생
소프트웨어 인터럽트는 명령어의 수행에 의해 발생
외부 인터럽트
입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생
ex) 전원 이상, 기계 착오, 외부 신호, 입출력
내부 인터럽트
Trap 또는 Exception 이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생
ex) Division by Zero, Overflow/Underflow, 기타 Execption(명령어를 잘못 사용)
소프트웨어 인터럽트
SVC(SuperVisor Call) 인터럽트
프로그램 처리 중 명령의 요청에 의해 발생한것
사용자가 프로그램을 실행시키거나 감시프로그램(Supervisor)을 호출하는 동작을 수행하는 경우
소프트웨어 이용중 다른 프로세스를 실행시키면 시분할 처리를 위해 자원 할당 등의 동작이 수행된다.
여러장치에서 인터럽트가 동시에 발생하거나, 인터럽트 서비스 루틴 수행 중 인터럽트가 발생했을 경우 우선순위를 따져서 처리한다.
폴링(Polling)
인터럽트 방식(Vectired Interrupt System)
하드웨어적인 방법
인터럽트 발생 시, 해당하는 Interrupt Vector를 찾아서 interrupt 서비스 수행
Interrupt Vector : 인터럽트를 발생한 장치가 분기할 곳에 대한 정보
Polling 방법에 비해 비경제적이다.
회로가 복잡하고 융통성이 없으나, 별도의 소프트웨어가 필요없이 하드웨어로 처리되므로 속도가 빠르다.
Daisy Chain 방식
병렬 우선순위 부여 방식