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의 단계
- CPU가 인터럽트가 발생했는지 여부를 검사함
- 인터럽트가 발생한 경우
- 프로그램의 실행을 보류
- 인터럽트-처리 루틴 실행
Interrupt의 처리 루틴
특정 I/O 디바이스를 서비스하기 위한 프로그램
- 일반적으로 운영체제 시스템에 포함됨
- 인터럽트를 처리하기 위한 오버헤드 존재
- 입출력 연산이 완료되기를 기다리며 낭비하는 시간에 비해 상대적으로 짧음
- 프로세스의 나머지 상태 정보를 저장
- 인터럽트 처리
- 프로세스의 상태 정보 복구
- 이전 PSW와 PC를 복구
Interrupt의 종류
1. 순차적 인터럽트 처리
하나의 인터럽트가 처리 중에는 다른 인터럽트가 발생하더라도, 실행하지 않음 → 상대적 우선순위 및 시간 긴급도를 고려하지 않음
2. 다중 인터럽트
인터럽트 간의 우선 순위를 지정함
- CPU는 실행 가능한 하나 이상의 프로그램을 보유
- 프로그램이 실행되는 순서는 프로그램의 상대적인 우선 순위와 입출력 대기 여부에 따라 달라짐
- 인터럽트 처리 루틴이 실행을 마치면, 인터럽트가 발생한 당시에 수행 중이던 프로그램으로 돌아가지 않을 수 있음
- PC 복구 → 무조건 원래 프로그램 실행되는 게 아니라, 운영체제가 개입해서 다른 프로그램(프로세스을 실행할 수도 있음.
- 예시 ) 타이머 인터럽트, I/O 완료 인터럽트
This post is licensed under
CC BY 4.0
by the author.
