[컴퓨터 구조] 인터럽트

ung·2026년 2월 9일

컴퓨터 구조

목록 보기
12/14
  • 인터럽트 - CPU의 작업을 방해하는 신호
    • 비동기 인터럽트: 입출력장치에 의해 발생하고 CPU가 입출력 장치에게 작업을 부탁하고 작업을 끝낸 장치가 CPU에게 완료 알림(인터럽트)을 보냄
    • 동기 인터럽트: CPU에 의해 발생하는 인터럽트 예외 라고도 부름

하드웨어 인터럽트

  • 효율적인 명령어 처리를 위해 하드웨어 인터럽트 사용

하드웨어 인터럽트 처리 순서

  1. 입출력 장치는 CPU에게 인터럽트 요청 신호를 보냄
  2. CPU는 실행 사이클이 끝나고 명령어를 인출하기 전에 항상 인터럽트 여부를 확인
  3. CPU는 인터럽트 요청을 확인하고, 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인
  4. 인터럽트를 받아들일 수 있다면 지금까지의 작업을 백업
  5. CPU는 인터럽트 백터를 참조해 서비스 루틴 실행
  6. 서비스 루틴 실행이 끝나면 4에서 백업 해둔 작업을 복구하여 실행을 재개

인터럽트 요청 신호

인터럽트는 CPU의 정상적인 실해 흐름을 끊는 것이기 때문에 인터럽트하기 전에 CPU에게 인터럽트의 가능 여부를 확인

인터럽트 플래그

  • CPU가 인터럽트 요청을 수용하기 위해서는 플래그 레지스터가 활성화 되어 있어야함
  • 인터럽트 플래그는 하드웨어 인터럽를 받아들일지, 무시할지를 결정하는 플래그
  • 만약 인터럽트 플래그가 불가능으로 설정되어 있다면 CPU는 인터럽트 요청이 오더라도 무시

인터럽트 서비스 루틴

  • CPU가 인터럽트 요청을 받아들이기로 했다면 CPU는 인터럽트 서비스 루틴을 실행
  • 인터럽트 서비스 루틴은 인터럽트를 처리하기 위한 프로그램으로, 인터럽트 핸들러라고도 함
  • CPU가 인터럽트를 처리 = 인터럽트 서비스 루틴을 실행하고, 본래 수행히던 작업으로 다시 되돌아온다는 의미

예외

예외 동기 인터럽트의 종류

  • 폴트: 예외가 발생한 명령어부터 실행
  • 트랩: 예외가 발생한 명령어의 다음 명령어부터 실행
  • 중단
  • 소프트웨어 인터럽트

0개의 댓글