콘텐츠로 이동

인터럽트 (Interrupt)

Jan 22, 2026 · Updated Jan 25, 2026

인터럽트는 하드웨어가 CPU에게 어떤 이벤트가 발생하여 주의가 필요함을 알리기 위해 신호를 보내는 메커니즘이다.

장치 컨트롤러가 작업을 완료했을 때, CPU에게 이를 알리는 방법이 필요하다.

  1. CPU가 인터럽트되면, 현재 작업을 중단
  2. 즉시 고정된 위치(인터럽트 서비스 루틴의 시작 주소)로 실행 전환
  3. 인터럽트 서비스 루틴 실행
  4. 완료 후 CPU는 중단된 연산을 재개

CPU 하드웨어에는 interrupt-request line이라는 선이 있다. CPU는 매 명령어 실행 후 이 라인을 감지한다.

1 Raise
컨트롤러가 신호를 assert
2 Catch
CPU가 인터럽트 번호를 읽음
3 Dispatch
인터럽트 벡터로 핸들러로 점프
4 Clear
핸들러가 처리 완료 후 해제
종류설명
Nonmaskable복구 불가능한 메모리 오류 등. 끌 수 없음
Maskable중요한 명령 시퀀스 실행 전 CPU가 끌 수 있음

I/O 작업 시나리오:

  1. 장치 드라이버가 장치 컨트롤러의 레지스터에 값을 로드
  2. 컨트롤러가 동작 수행 (예: 키보드에서 문자 읽기)
  3. 데이터 전송 완료 후 컨트롤러가 인터럽트로 장치 드라이버에 통지
장점단점
비동기 이벤트 처리 가능빈번한 발생으로 효율적 처리 필요
CPU가 지속적으로 폴링할 필요 없음
  • Operating System Concepts, 10th Edition, Chapter 1, p.8-11