운영체제

인터럽트

Younghun 2024. 1. 10. 11:10

1. 인터럽트란

  • 시스템의 내부 또는 외부에서 발생하는 예기치 못한 사건에 의해, 프로세서가 실행 중인 프로그램의 작업을 중단시키고 다른 프로그램을 수행하도록 하는 명령어
  • 입출력, 에러, 타임아웃 등에 발생
  • 하드웨어 인터럽트와 소프트웨어 인터럽트로 분류
  • 인터럽트 핸들러는 인터럽트를 실제로 처리하는 프로그램
  • CPU 자원을 최대로 활용하기 위한 방안

2. 인터럽트 실행 과정

출처: https://andy-archive.tistory.com/51

  1. 인터럽트 신호에 의하여 현재 실행 중인 명령어를 종료
  2. 레지스터의 모든 정보를 스택 영역(또는 프로세스 제어 블록/PCB)에 전송
  3. 프로그램 카운터에 인터럽트 처리 프로그램(인터럽트 핸들러/서비스 루틴)의 시작 위치를 저장
  4. 제어권이 인터럽트 처리 프로그램을 실행
  5. 4번이 완료되면 스택 영역(또는 PCB)에 위치한 내용을 다시 레지스터에 저장
  6. 프로그램 카운터에 중단된 프로그램의 시작 위치를 저장
  7. 중단된 프로그램을 재실행