인터럽트 (Interrupt)
쉽게 풀면
공부를 하다가 전화벨이 울리면, 하던 공부를 잠시 멈추고 전화를 받은 다음 다시 공부로 돌아오는 경우를 떠올려 보세요. 만약 전화가 올 때마다 몇 분마다 "혹시 전화 왔나?" 하고 계속 확인해야 한다면 매우 비효율적일 것입니다. 인터럽트는 컴퓨터 안에서 바로 이 "전화벨" 역할을 합니다. 키보드 입력이나 네트워크 데이터 도착처럼 예측할 수 없는 사건이 생기면, 해당 장치가 CPU에 신호를 보내고 CPU는 지금 하던 작업의 상태를 저장한 뒤 그 사건을 처리하는 전용 코드(인터럽트 서비스 루틴)로 넘어갑니다. 처리가 끝나면 저장해 둔 상태를 불러와 원래 하던 작업을 이어서 진행합니다. 덕분에 CPU가 매번 장치 상태를 확인하며 기다릴 필요 없이, 필요한 순간에만 반응할 수 있습니다.
왜 중요한가
인터럽트는 CPU가 외부 사건에 즉각적이고 효율적으로 반응하도록 해주는 근본적인 메커니즘이기 때문에 운영체제, 임베디드시스템, 실시간시스템 연구에서 핵심적으로 다뤄집니다. 인터럽트 처리 지연이나 우선순위 설계는 실시간성이 중요한 자율주행, 산업 제어, IoT 기기 등 다양한 응용 분야의 성능과 안전성에 직결되며, 운영체제의 스케줄링·전원 관리 정책을 설계할 때도 함께 고려되는 기초 개념입니다.
논문에서는 이렇게 쓰입니다
이 문장은 장치 상태를 CPU가 반복적으로 확인하는 대신, 이벤트가 발생했을 때만 CPU에 알려주는 방식을 사용해 응답 속도와 자원 효율을 높였다는 뜻입니다.
여러 인터럽트가 동시에 발생할 수 있는 상황에서, 더 긴급한 신호를 먼저 처리하도록 우선순위를 두는 구조를 설명하는 문장입니다.
배터리로 동작하는 소형 기기에서는 인터럽트 방식이 전력 효율을 높이는 설계 전략으로 활용된다는 의미입니다.
조금 더 깊게 보면
인터럽트에는 하드웨어 장치가 발생시키는 하드웨어 인터럽트뿐 아니라, 프로그램 실행 중 오류나 시스템 호출처럼 소프트웨어적으로 발생하는 예외(trap, exception)도 넓게 포함됩니다. 여러 인터럽트가 동시에 들어올 때 어떤 것을 먼저 처리할지 정하는 인터럽트 우선순위와, 처리 중인 인터럽트보다 더 급한 인터럽트가 끼어드는 것을 허용할지에 관한 정책(중첩 허용 여부)은 시스템 설계에서 중요하게 다뤄지는 세부 주제입니다. 또한 인터럽트가 발생한 순간부터 실제 처리 루틴이 시작되기까지 걸리는 시간, 즉 인터럽트 지연시간(latency)은 실시간시스템의 성능을 평가하는 핵심 지표로 자주 언급됩니다.
주의할 점
인터럽트는 하드웨어 장치가 CPU에 보내는 신호를 가리키는 개념으로, 소프트웨어 실행 흐름에서 하나의 프로그램이 실행 중인 다른 프로그램으로 자원 사용 순서를 넘겨받는 컨텍스트 스위칭과는 구분됩니다. 인터럽트가 발생하면 그 처리 과정에서 컨텍스트 스위칭이 함께 일어나는 경우가 많지만, 인터럽트 자체는 "사건 발생을 알리는 신호"이고 컨텍스트 스위칭은 "실행 상태를 바꾸는 절차"라는 점에서 서로 다른 개념입니다.