📖 WIPIVERSE

🔍 현재 등록된 정보: 69,010건

인터럽트

인터럽트(Interrupt)는 컴퓨터 과학에서 CPU(중앙 처리 장치)가 현재 실행 중인 프로그램을 일시 중단하고, 특정 사건(event)에 대한 처리를 우선적으로 수행하도록 하는 메커니즘이다. 인터럽트는 하드웨어 인터럽트와 소프트웨어 인터럽트로 크게 구분된다.

개요

인터럽트는 시스템의 효율성을 높이는 데 중요한 역할을 한다. CPU가 입출력 장치의 작업 완료를 기다리는 동안 다른 작업을 수행할 수 있도록 하고, 예외 상황 발생 시 즉각적으로 대응할 수 있도록 한다. 인터럽트가 발생하면 CPU는 현재 상태를 저장하고, 인터럽트 벡터 테이블(Interrupt Vector Table)을 참조하여 해당 인터럽트 서비스 루틴(Interrupt Service Routine, ISR) 또는 인터럽트 핸들러(Interrupt Handler)를 실행한다. ISR은 인터럽트를 발생시킨 사건을 처리하고, 처리가 완료되면 저장된 상태를 복원하여 원래 실행 중이던 프로그램으로 복귀한다.

종류

  • 하드웨어 인터럽트 (Hardware Interrupt): 외부 장치(키보드, 마우스, 네트워크 카드 등) 또는 하드웨어적인 문제(전원 이상, 메모리 오류 등)에 의해 발생하는 인터럽트이다. 하드웨어 인터럽트는 인터럽트 요청 라인(Interrupt Request Line, IRQ)을 통해 CPU에 신호를 보낸다.

  • 소프트웨어 인터럽트 (Software Interrupt): 프로그램 실행 중에 발생하는 인터럽트이다. 시스템 호출(System Call)이나 예외(Exception) 상황(0으로 나누기, 잘못된 메모리 접근 등)에 의해 발생한다. 소프트웨어 인터럽트는 CPU의 인터럽트 명령어를 통해 발생시킨다.

동작 과정

  1. 인터럽트 발생: 하드웨어 또는 소프트웨어적으로 인터럽트가 발생한다.
  2. 상태 저장: CPU는 현재 실행 중인 프로그램의 상태(레지스터 값, 프로그램 카운터 등)를 스택(Stack)에 저장한다.
  3. 인터럽트 벡터 테이블 참조: 인터럽트 벡터 테이블에서 해당 인터럽트에 대한 ISR의 주소를 찾는다.
  4. ISR 실행: ISR을 실행하여 인터럽트의 원인이 된 사건을 처리한다.
  5. 상태 복원: ISR이 완료되면 스택에 저장된 상태를 복원한다.
  6. 원래 프로그램 복귀: 복원된 상태를 기반으로 원래 실행 중이던 프로그램의 실행을 재개한다.

활용

인터럽트는 운영체제, 디바이스 드라이버, 임베디드 시스템 등 다양한 분야에서 활용된다. 입출력 관리, 타이머 관리, 예외 처리 등 시스템의 핵심적인 기능을 구현하는 데 필수적인 요소이다.