Develop+

프로세스의 인터럽트/처리순서 본문

운영체제

프로세스의 인터럽트/처리순서

Sunny Buddy 2021. 1. 3. 21:50
728x90
프로그램을 실행하는 도중 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 작업을 복귀하는 것

종류

소프트웨어 인터럽트

  • SVC(supervisopr call interrupt) 인터럽트
    • 사용자가 프로그램을 실행시키거나 감시 프로그램을 호출하는 동작을 수행하는 경우
    • 소프트웨어 이용 중 다른 프로세스를 실행시키면 시분할 처리를 위해 자원 할당 등의 동작이 수행됨

외부 인터럽트

  • 전원 이상 인터럽트 (power fail interrupt)
    • 정전이 되거나 전원 이상이 있는 경우
  • 기계 착오 인터럽트(machine check interrupt)
    • CPU 등의 기능적인 오류가 있는 경우
  • 외부 신호 인터럽트(external interrupt)
    • 자원의 할당된 시간이 끝난 경우
  • 입.출력 인터럽트(I/O interrupt)
    • 입출력 장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우
    • 입 출력 데이터에 이상이 있는 경우

내부 인터럽트

  • 프로그램 검사 인터럽트(program check interrupt)
    • overflow/underflow가 발생하는 경우
    • 프로그램에서 명령어를 잘못 사용하는 경우
 

인터럽트 발생 시 처리 순서

  1. 인터럽트 요청 신호 발생
  2. 프로그램 실행 중단
  3. 현재 프로그램 상태 보존 (복귀 주소를 stack에 저장)
  4. 인터럽트 처리 루틴 실행(문제가 어떤 것인지 파악)
  5. 인터럽트 서비스 루틴 실행(문제 해결)
  6. 상태 복구가 중단된 프로그램 재실행

인터럽트 우선 순위

  1. 전원이상
  2. 기계 착오
  3. 외부 신호
  4. 입.출력
  5. 프로그램 검사
  6. SVC
728x90