4. 인터럽트

  • 컴퓨터에 설정된 상치(입출력 장치 등)에서 프로세서로 보내는 하드웨어 신호다. 인터럽트를 받은 프로그램은 실행을 멈추고 다른 프로그램이 실행된다.

  • 현재 실행 중인 프로그램의 수행을 연기하고 다른 프로그램의 수행을 요구하는 명령이다.

  • 프린터가 무자를 출력할 준비가 되어야 컴퓨터가 프린터로 문자를 전송할 수 있다. 따라서 프로세서는 연겨로딘 각 입출력장치의 현재 상태를 파악하고 있어야 하는데, 이 상태를 나타내기 위해 1비트 이상의 정보로 표현된 준비 비트 또는 상태 비트가 필요하다.
  • 입출력장치가 새로운 입출력 연산(데이터 전송)을 수행하려고 하면, 프로세서는 먼저 폴링(Polling)을 통해 각 장치의 상태 비트를 검사한다.
  • 인터럽트를 사용하면 입출력 상태가 준비 상태가 될 때까지 프로세서가 다른 작업을 수행할 수 있다. 즉, 입출력장치가 준비 상태가 되었을 때 프로세서에 인터럽트 신호를 보냄으로써 이루어진다.
  • 버스제어선 중 하나를 이런 목적으로 사용하는데 이것을 인터럽트 요청 회선(IRQ, Interrupt Request Line)이라 한다.
  • 프로세서가 외부 장치의 상태를 직접 점검할 필요가 없어 이 기간동안 다른 연산을 수행하여 프로세서의 효율을 높일 수 있다.
  • 인터럽트는 크게 인터럽트 요청과 인터럽트 서비스 루틴으로 구성된다. 인터럽트 요청 신호에 의해 수행되는 루틴을 인터럽트 처리 프로그램, 즉 인터럽트 서비스 루틴(Interrupt Service Routine)이라 하며 인터럽트 발생 원인에 따라 적절한 처리 루틴을 수행한다.
  • 인터럽트 요청 신호가 발생하면 대부분의 컴퓨터는 정보를 단일 명령어로 저장할 수 있으므로 실행 중인 프로그램을 메모리에 저장하고 인터럽트 서비스 프로그램으로 분기한다. 그리고 인터럽트 루틴의 수행을 완료하면 인터럽트를 발생시킨 프로그램에 제어를 되돌려 준다.