CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다.
인터럽트는 크게 내부 인터럽트와 외부 인터럽트로 나뉜다.
외부 인터럽트는 주로 입출력장치 에 의해 발생된다.
명령어 사이클은 인출(fetch stage)과 실행(execution stage) 두 가지 단계를 반복해서 수행한다. 그런데 인터럽트 요청이 들어왔다고 해서 바로 이를 처리하는 것이 아니라, 명령어 N의 실행 단계를 마쳐야 한다. 명령어의 실행단계를 마칠 때마다 중앙처리장치는 반복적으로 인터럽트 요청이 있는지 계속해서 확인한다. 인터럽트 요청이 있어야 인터럽트 서비스 단계를 진행한다.
좀 더 큰 개념으로 살펴본다면 아래와 같은 그림이 된다.
인터럽트 핸들러
실제 인터럽트를 처리하기 위한 루틴으로 인터럽트 서비스 루틴이라고도 한다.
운영체제의 코드 영역에는 인터럽트별로 처리해야할 내용이 이미 프로그램되어 있다.
인터럽트 벡터
인터럽드 발생시 처리해야 할 인터럽트 핸들러의 주소를 인터럽트 별로 보관하고 있는 테이블이다.