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

인터럽트(Interrupt)는 왜 필요할까

by by_merry 2026. 5. 13.

컴퓨터 구조를 공부하다 보면 “인터럽트(Interrupt)”라는 단어를 정말 자주 보게 된다. 처음에는 이름부터 너무 어려워 보여서 그냥 넘어갔던 기억이 있다. 나도 예전에는 CPU가 모든 걸 스스로 알아서 처리하는 줄 알았다. 그런데 조금씩 운영체제와 하드웨어 구조를 공부하다 보니까, 실제로는 CPU가 계속 모든 장치를 직접 확인하는 방식으로는 절대 효율적으로 동작할 수 없다는 걸 알게 됐다. 그 문제를 해결하기 위해 등장한 개념이 바로 인터럽트다.

 

CPU가 모든 장치를 계속 확인하면 너무 비효율적이다

컴퓨터에는 정말 많은 장치들이 연결되어 있다. 키보드, 마우스, SSD, 네트워크 카드 같은 장치들이 계속 데이터를 주고받는다. 처음에는 CPU가 이런 장치들을 하나씩 계속 확인하는 줄 알았다.

예를 들어 CPU가:

  • “키보드 입력 들어왔나?”
  • “마우스 움직였나?”
  • “파일 저장 끝났나?”

이걸 계속 반복해서 확인한다고 생각해보자. 가능은 하겠지만 굉장히 비효율적이다. 대부분의 시간은 “아무 일도 안 일어남”을 확인하는 데 낭비될 가능성이 크다.

나도 이 개념을 처음 이해했을 때 “CPU가 생각보다 한가한 일도 많이 하고 있었겠구나”라는 느낌이 들었다. 특히 키보드 입력 같은 건 사람이 누를 때까지 아무 일도 없는데, CPU가 계속 확인만 하고 있으면 낭비가 너무 크다.

그래서 컴퓨터는 반대로 동작한다. CPU가 계속 확인하는 게 아니라, 장치가 필요할 때 CPU를 부르는 구조다. 그 신호가 바로 인터럽트다.

인터럽트는 장치가 CPU에게 보내는 ‘지금 처리해줘!’ 신호다

인터럽트는 쉽게 말하면 장치가 CPU에게 보내는 알림이다. 키보드를 눌렀거나, 파일 저장이 끝났거나, 네트워크 데이터가 도착했을 때 장치가 CPU에게 “지금 처리할 일이 생겼다”고 알려주는 방식이다.

CPU는 원래 하던 작업을 잠깐 멈추고, 해당 인터럽트를 처리한 뒤 다시 원래 작업으로 돌아간다.

이 구조를 이해하고 나니까, 컴퓨터가 생각보다 훨씬 “이벤트 중심”으로 움직이고 있다는 느낌이 들었다. 계속 감시하는 게 아니라, 필요한 순간에만 반응하는 방식인 것이다.

나도 예전에 게임을 하다가 키보드 입력이 거의 즉시 반응하는 걸 당연하게 생각했는데, 실제로는 인터럽트 덕분에 CPU가 빠르게 입력을 처리하고 있었던 것이다.

특히 SSD 데이터 읽기나 인터넷 통신 같은 것도 대부분 인터럽트를 기반으로 동작한다는 걸 알고 나니까, 이 개념이 운영체제 전체에서 얼마나 중요한지 조금씩 보이기 시작했다.

인터럽트가 너무 많아도 성능 문제가 발생할 수 있다

인터럽트는 효율적인 구조지만, 무조건 많다고 좋은 것은 아니다. 인터럽트가 발생할 때마다 CPU는 현재 작업을 멈추고 다른 작업을 처리해야 한다.

즉, 인터럽트가 너무 자주 발생하면 CPU가 원래 작업에 집중하지 못하고 계속 작업 전환만 하게 될 수도 있다. 이 과정에서 컨텍스트 스위칭 비용도 함께 발생한다.

나도 예전에 오래된 PC에서 USB 장치를 여러 개 연결했을 때 갑자기 전체 반응이 느려지는 느낌을 받은 적이 있었는데, 나중에 보니까 입출력 처리와 인터럽트 부담이 커진 상황이었다.

그래서 운영체제는 인터럽트를 무조건 즉시 처리하기보다는, 우선순위를 나누거나 일부를 묶어서 처리하기도 한다. 결국 중요한 건 “얼마나 효율적으로 반응하느냐”다.

이걸 공부하면서 느낀 건, 컴퓨터는 단순히 빠른 기계가 아니라, 수많은 장치와 신호를 굉장히 체계적으로 관리하는 시스템이라는 점이었다.

한 줄로 정리하면 인터럽트는 장치가 CPU에게 작업이 필요하다고 알려주는 신호이며, CPU가 모든 장치를 계속 확인하지 않아도 효율적으로 반응할 수 있게 만드는 핵심 구조다.