Learning
토픽 60 / 111·I/O·버스 (I/O & Bus)

인터럽트 (Interrupt)

인터럽트 (Interrupt)

하드웨어나 소프트웨어가 CPU에게 긴급한 처리가 필요함을 알리는 비동기 이벤트로, CPU가 현재 작업을 중단하고 인터럽트 서비스 루틴을 실행하게 하는 메커니즘

목적: 비동기 이벤트 처리, I/O 완료 통지, 예외 처리, 멀티태스킹

특징: 비동기, 우선순위, 컨텍스트 저장/복원, 벡터 기반

분류

  • 하드웨어 인터럽트: I/O 완료, 타이머, 키보드, 네트워크, 비동기
  • 소프트웨어 인터럽트(Trap): 시스템 콜, 예외, 동기
  • 예외(Exception): Page Fault, Division by Zero, Segmentation Fault, 동기

동작과정: ① 인터럽트 발생 → ② CPU 현재 상태 저장(PC, 레지스터) → ③ IVT/IDT에서 핸들러 주소 획득 → ④ ISR(Interrupt Service Routine) 실행 → ⑤ 상태 복원 및 복귀

우선순위: Reset > Machine Check > Page Fault > Hardware Interrupt > Software Interrupt

인터럽트 벡터: IVT(Interrupt Vector Table) 또는 IDT(Interrupt Descriptor Table), 각 인터럽트별 핸들러 주소

마스킹: Maskable(IF 플래그로 차단 가능) vs Non-Maskable(NMI, 차단 불가)

장점: 효율적 I/O, CPU 활용률 향상, 실시간 응답, 멀티태스킹 지원

적용사례: 모든 현대 OS, I/O 처리, 타이머, 예외 처리

비교: 인터럽트(비동기/HW) vs Trap(동기/SW) vs Polling(CPU 반복체크/비효율)

연관: ISR, IVT, 예외 처리, 컨텍스트 스위칭, DMA