정보처리/OS
[OS-04] 인터럽트(Interrupt)
별천랑
2021. 2. 7. 16:57
1. 인터럽트 종류 및 발생 원인
- 전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우
- 기계 착오 인터럽트(Machine Check Interrupt) : CPU 등의 기계가 고장을 일으킨 경우
- SVC인터럽트(Supervisor Call Interrupt) : 입출력 수행, 기억장치 할당 등을 위해 발생
- 입/출력 인터럽트(Input-Output Interrupt) : 수행 도중 입/출력이 발생하는 경우
- 외부 신호 인터럽트 : 정해진 시간이 끝나거나 오퍼레이터의 키 조작 발생한 경우
- 재시작 인터럽트 : 오퍼레이터가 재시작 버튼을 눌러 시스템을 재 부팅시키는 경우
- 프로그램 검사 인터럽트(Program Check Interrupt)
- 0으로 나누기가 발생하는 경우
- Overflow/Underflow가 발생하는 경우
- 프로그램에서 명령어를 잘못 사용하는 경우
2. 인터럽트 발생 시 처리 순서
- 인터럽트 요청 신호가 발생
- 프로그램 실행을 중단
- 현재 프로그램 상태를 보존 (복귀 주소(return address)를 stack에 저장)
- 인터럽트 처리 루틴을 실행
- 인터럽트 서비스 루틴을 실행
- 상태 복구
- 중단된 프로그램 실행 재개
3. 인터럽트 우선순위
- 컴퓨터에 여러 형태의 인터럽트가 동시에 발생할 경우 우선순위에 따라 인터럽트를 수행
- 전원 이상 < 기계 착오 < 외부 신호 < 입/출력 < 프로그램 검사 < SVC (우선순위가 높음)