본문 바로가기
카테고리 없음

인터럽트(Interrupt)란?

by Alohawaii 2026. 3. 4.

인터럽트(Interrupt)란?

 CPU가 실행 중인 작업을 잠시 멈추고, 더 급한 일을 먼저 처리하도록 만드는 신호

 

쉽게 말하면 지금 이거 멈추고 이것부터 처리하라고 시키는 것과 같다.


왜 필요할까?

 CPU는 기본적으로 순차적으로 명령을 실행한다. 

그런데 이런 상황이 발생한다

  •  키보드 입력 발생
  • 네트워크 패킷 도착
  • 디스크 I/O 완료
  • 타이머 만료

이걸 CPU가 계속 확인(Polling)하면 비효율적이다.

 

그래서 -> 이벤트가 발생하면 장치가 CPU에게 신호를 보냄 -> 그게 인터럽트이다.


동작 흐름

1. CPU가 A작업 수행 중

2. 인터럽트 발생

3. CPU가 현재 상태 저장(Context Save)

4. 인터럽트 핸들러 실행

5. 처리 끝나면 원래 작업 복귀

작업 A 실행 중
   ↓
[인터럽트 발생]
   ↓
인터럽트 처리
   ↓
작업 A 복귀

인터럽트 종류

1. 하드웨어 인터럽트

 외부 장치에서 발생

  • 키보드
  • 마우스
  • 디스크
  • 네트워크 카드

2. 소프트웨어 인터럽트

 프로그램이 직접 발생시킴

예:

  • 시스템 콜(System Call)
  • 예외(Exception)

자바에서 예외 터지는 것도 내부적으로는 인터럽트 메커니즘과 연관된 개념이다.

 

따라서 인터럽트는 CPU가 작업을 수행하던 중 외부 또는 내부 이벤트가 발생했을 때 현재 작업을 잠시 중단하고 해당 이벤트를 처리하도록 하는 메커니즘이다.