본문 바로가기

운영체제

컴퓨터 시스템의 인터럽트 처리 매커니즘

인터럽트와 폴링의 개념적 차이

폴링 (Polling)

  • 폴링은 CPU가 주기적으로 입출력 장치의 상태를 검사하는 방식이다.
  • CPU는 능동적으로 데이터가 준비되었는지 확인하기 위해 장치를 체크한다.
  • 이 방법은 데이터가 없음에도 불구하고 상태를 확인해야 하기 때문에, CPU의 리소스가 지속적으로 사용되어 효율성이 낮아질 수 있다.

인터럽트 (Interrupt)

  • 인터럽트는 입출력 장치나 다른 하드웨어로부터의 신호에 의해 CPU가 현재 처리 중인 작업을 일시 중단하고, 발생한 이벤트를 처리한 후 원래 작업으로 복귀하는 방식이다.
  • 이벤트 발생 시에만 CPU가 작업을 중단하므로, 불필요한 리소스 사용을 줄이며 시스템의 효율성을 높일 수 있다.

 

ISR (Interrupt Service Routine)

  • ISR은 인터럽트 서비스 루틴으로, 특정 인터럽트가 발생했을 때 실행되는 처리 루틴이다.
  • 각 인터럽트 타입은 고유한 ISR을 가지며, 인터럽트 발생 시 시스템은 해당 인터럽트에 할당된 ISR을 자동으로 호출한다.
  • ISR의 목적은 인터럽트를 신속하게 처리하고, 시스템을 가능한 빨리 원래의 작업 상태로 복귀시키는 것이다.
  • ISR 내에서는 실행 시간이 길거나 복잡한 작업을 피해야 하며, 대신에 인터럽트 처리를 위한 최소한의 필수 작업만을 수행해야 한다.

 

Interrupt Vector

  • 인터럽트 벡터는 인터럽트 식별 번호(ID)와 해당 인터럽트를 처리하는 ISR의 주소를 연결하는 테이블이다.
  • 시스템은 인터럽트 발생 시 인터럽트 벡터 테이블을 참조하여 해당 인터럽트의 ISR 주소를 찾고, 이 주소로 제어를 이동시켜 ISR을 실행한다.
  • 인터럽트 벡터 테이블은 시스템의 인터럽트 처리 메커니즘에서 중심적인 역할을 하며, 시스템 부팅 시에 설정된다.
  • 이 테이블을 통해 시스템은 다양한 인터럽트에 대해 빠르고 효율적으로 대응할 수 있다.