인터럽트(Interrupt)의 개념과 종류
<aside>
💡 INT = Interrupt
</aside>
인터럽트란 사전적 의미로는 '끼어들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다.
Interrupt 는 벨을 띵동 누른 것
컴퓨터가 주변기기와 I/O를 할 때 마다 interrupt 발생 (I/O Interrupt)
프로세스가 H/W와 입출력을 주고받을 때 동안
waiting - Blocking I/O
딴 거 함 - Non-blocking I/O
인터럽트의 종류
- 외부 인터럽트(H/W 인터럽트)
- 전원 이상 인터럽트 - Power 문제
- 기계 착오 인터럽트 - CPU의 기능적 오류
- 외부 신호 인터럽트 - Ctrl + Shift + Del 키 등
- 내부 인터럽트(Trap)
- 잘못된 명령이나 잘못된 데이터를 사용할 때
- Division by zero
- Overflow/Underflow
- 기타 Exception
- 소프트웨어 인터럽트(SVC : SuperVisor Call)
- 사용자가 프로그램을 실행시키거나 감시프로그램(Supervisor)을 호출하는 동작을 수행하는 경우
- 소프트웨어 이용 중 다른 프로세스를 실행시키면 시분할 처리를 위해 자원 할당 등의 동작이 수행된다.
인터럽트 동작 순서
- 인터럽트 요청
- 프로그램 실행 중단 - 현재 실행 중이던 Micro operation 까지 수행한다.
- 현재의 프로그램 상태 보존 - PCB(Process Control Block), PC(Program Counter) 등
- 인터럽트 처리 루틴 실행
- 인터럽트 서비스 루틴 실행