인터럽트 (Interrupt)

컴퓨터과학·AI
한 줄 정의: CPU가 프로그램을 실행하던 중 긴급한 사건이 발생하면 하던 일을 잠시 멈추고 그 사건을 먼저 처리한 뒤 원래 작업으로 돌아가는 신호 기반 처리 방식입니다.

쉽게 풀면

공부를 하다가 전화벨이 울리면, 하던 공부를 잠시 멈추고 전화를 받은 다음 다시 공부로 돌아오는 경우를 떠올려 보세요. 만약 전화가 올 때마다 몇 분마다 "혹시 전화 왔나?" 하고 계속 확인해야 한다면 매우 비효율적일 것입니다. 인터럽트는 컴퓨터 안에서 바로 이 "전화벨" 역할을 합니다. 키보드 입력이나 네트워크 데이터 도착처럼 예측할 수 없는 사건이 생기면, 해당 장치가 CPU에 신호를 보내고 CPU는 지금 하던 작업의 상태를 저장한 뒤 그 사건을 처리하는 전용 코드(인터럽트 서비스 루틴)로 넘어갑니다. 처리가 끝나면 저장해 둔 상태를 불러와 원래 하던 작업을 이어서 진행합니다. 덕분에 CPU가 매번 장치 상태를 확인하며 기다릴 필요 없이, 필요한 순간에만 반응할 수 있습니다.

왜 중요한가

인터럽트는 CPU가 외부 사건에 즉각적이고 효율적으로 반응하도록 해주는 근본적인 메커니즘이기 때문에 운영체제, 임베디드시스템, 실시간시스템 연구에서 핵심적으로 다뤄집니다. 인터럽트 처리 지연이나 우선순위 설계는 실시간성이 중요한 자율주행, 산업 제어, IoT 기기 등 다양한 응용 분야의 성능과 안전성에 직결되며, 운영체제의 스케줄링·전원 관리 정책을 설계할 때도 함께 고려되는 기초 개념입니다.

논문에서는 이렇게 쓰입니다

"실시간 응답성을 확보하기 위해 폴링(polling) 방식 대신 인터럽트(interrupt) 기반 입출력 처리 구조를 채택하였다."

이 문장은 장치 상태를 CPU가 반복적으로 확인하는 대신, 이벤트가 발생했을 때만 CPU에 알려주는 방식을 사용해 응답 속도와 자원 효율을 높였다는 뜻입니다.

"제안된 스케줄링 기법은 우선순위가 높은 인터럽트가 낮은 인터럽트 처리 중에도 즉시 개입할 수 있도록 중첩 인터럽트를 지원하였다."

여러 인터럽트가 동시에 발생할 수 있는 상황에서, 더 긴급한 신호를 먼저 처리하도록 우선순위를 두는 구조를 설명하는 문장입니다.

"저전력 임베디드 기기에서는 주기적인 폴링 대신 인터럽트를 활용하여 유휴 상태의 전력 소모를 크게 줄였다."

배터리로 동작하는 소형 기기에서는 인터럽트 방식이 전력 효율을 높이는 설계 전략으로 활용된다는 의미입니다.

조금 더 깊게 보면

인터럽트에는 하드웨어 장치가 발생시키는 하드웨어 인터럽트뿐 아니라, 프로그램 실행 중 오류나 시스템 호출처럼 소프트웨어적으로 발생하는 예외(trap, exception)도 넓게 포함됩니다. 여러 인터럽트가 동시에 들어올 때 어떤 것을 먼저 처리할지 정하는 인터럽트 우선순위와, 처리 중인 인터럽트보다 더 급한 인터럽트가 끼어드는 것을 허용할지에 관한 정책(중첩 허용 여부)은 시스템 설계에서 중요하게 다뤄지는 세부 주제입니다. 또한 인터럽트가 발생한 순간부터 실제 처리 루틴이 시작되기까지 걸리는 시간, 즉 인터럽트 지연시간(latency)은 실시간시스템의 성능을 평가하는 핵심 지표로 자주 언급됩니다.

주의할 점

인터럽트는 하드웨어 장치가 CPU에 보내는 신호를 가리키는 개념으로, 소프트웨어 실행 흐름에서 하나의 프로그램이 실행 중인 다른 프로그램으로 자원 사용 순서를 넘겨받는 컨텍스트 스위칭과는 구분됩니다. 인터럽트가 발생하면 그 처리 과정에서 컨텍스트 스위칭이 함께 일어나는 경우가 많지만, 인터럽트 자체는 "사건 발생을 알리는 신호"이고 컨텍스트 스위칭은 "실행 상태를 바꾸는 절차"라는 점에서 서로 다른 개념입니다.

관련 용어