Post

Operating System | Computer System Overview | Interrupt

Operating System | Computer System Overview | Interrupt

Interrupt란?

Interrupt의 정의

CPU의 정상적인 흐름을 방해하는 동작을 말한다 → 대부분의 I/O 디바이스는 CPU보다 느림

  • CPU는 디바이스가 작업을 완료 할 때까지 기다려야 함
  • Blocking I/O의 문제점

Interrupt의 분류

CPU는 디바이스의 작업 완료를 위해 기다릴 수 있음 → 하지만 이는 처리기의 성능 저하 유발의 원인이 됨 → 이를 위해 디바이스가 작업이 완료되면 CPU에게 인터럽트를 걸 수 있도록 허용함

  • 프로그램
    • exception(응답없음) : 보통 프로세스 죽었을때
  • 타이머
  • I/O (주된 인터럽트)
    • 연산의 정상적인 종료
    • 다양한 에러조건을 알려줌
  • 하드웨어 실패

Interrupt의 단계

  1. CPU가 인터럽트가 발생했는지 여부를 검사함
  2. 인터럽트가 발생한 경우
    • 프로그램의 실행을 보류
    • 인터럽트-처리 루틴 실행

Interrupt의 처리 루틴

특정 I/O 디바이스를 서비스하기 위한 프로그램

  • 일반적으로 운영체제 시스템에 포함됨
  • 인터럽트를 처리하기 위한 오버헤드 존재
    • 입출력 연산이 완료되기를 기다리며 낭비하는 시간에 비해 상대적으로 짧음
      1. 프로세스의 나머지 상태 정보를 저장
      2. 인터럽트 처리
      3. 프로세스의 상태 정보 복구
      4. 이전 PSW와 PC를 복구

Interrupt의 종류

1. 순차적 인터럽트 처리

하나의 인터럽트가 처리 중에는 다른 인터럽트가 발생하더라도, 실행하지 않음 → 상대적 우선순위 및 시간 긴급도를 고려하지 않음

2. 다중 인터럽트

인터럽트 간의 우선 순위를 지정함

  • CPU는 실행 가능한 하나 이상의 프로그램을 보유
  • 프로그램이 실행되는 순서는 프로그램의 상대적인 우선 순위와 입출력 대기 여부에 따라 달라짐
  • 인터럽트 처리 루틴이 실행을 마치면, 인터럽트가 발생한 당시에 수행 중이던 프로그램으로 돌아가지 않을 수 있음
    • PC 복구 → 무조건 원래 프로그램 실행되는 게 아니라, 운영체제가 개입해서 다른 프로그램(프로세스을 실행할 수도 있음.
    • 예시 ) 타이머 인터럽트, I/O 완료 인터럽트
This post is licensed under CC BY 4.0 by the author.