인터럽트

EBAB!·2023년 7월 10일
0

OS

목록 보기
5/16

인터럽트

프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것

종류

  • 외부 인터럽트
    • 전원 이상 인터럽트 : 전원 파워의 이상
    • 기계 착오 인터럽트 : CPU의 기능적인 오류
    • 외부 신호 인터럽트
      • 타이머에 의한 인터럽트 : 자원의 할당 시간이 끝난 경우
      • 키보드로 인터럽트 키를 누른 경우 (Ctrl + Alt + Delete)
      • 외부 장치로부터의 인터럽트 요청 (I/O 인터럽트가 아님!)
    • 입출력 인터럽트
      • 입출력 장치가 데이터 전송을 요구하거나 전송이 끝난 다음 동작이 수행되어야 할 경우
      • 입출력 데이터에 이상이 있는 경우
  • 내부 인터럽트
    • 잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.
    • 프로그램 검사 인터럽트(Program check Interrupt)
      • Division by zero
      • Overflow/Underflow
      • 기타 Exception

인터럽트 동작 순서

  1. 인터럽트 요청
  2. 프로그램 실행 중단 : 실행중이던 Micro operation까지 수행
  3. 현재의 프로그램 상태 보존 : PCB(Process Control Block), PC(Program Counter) 등
  4. 인터럽트 처리루틴 실행 : 인터럽트를 요청한 장치 식별
  5. 인터럽트 서비스 루틴 실행 : 인터럽트 원인을 파악하고 실질적인 작업 수행. 처리기 레지스터 상태를 보존. 우선순위가 더 높은 인터럽트가 발생하면 1~5 재귀적 실행
  6. 상태 복구 : 인터럽트 발생 시 저장해둔 PC를 복구
  7. 중단된 프로그램 실행 재개 : PC의 값을 이용하여 이전에 수행중이던 프로그램 제거.

인터럽트 우선순위

전원이상(Power fall) > 기계 착오(Machine) > 외부 신호(External) > 입출력(I/O) > 명령어 미스 > 프로그램 검사(Program Check) > SVC(SuperVisor Call)

  • 일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높고 내부 인터럽트보다 외부 인터럽트 우선 순위가 높다.
profile
공부!

0개의 댓글