인터럽트
프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것
인터럽트의 종류
- 외부 인터럽트
- CPU의 하드웨어 신호에 의해 발생
- 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생
- ex) 전원 이상, 기계 착오, 외부 신호, 입출력 등
- 내부 인터럽트
- Trap이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생
- ex) 0으로 나누기, 오버플로우. => Exception
- 소프트웨어 인터럽트 (SVC 인터럽트)
- 프로그램 처리 중 명령의 요청에 의해 발생한 것
- ex) 사용자가 프로그램을 실행시킬 때 발생
인터럽트 발생 처리 과정
- 주 프로그램 실행
- 인터럽트 발생
- 복귀 주소 저장
- 상태 레지스터와 PC 등을 스택에 잠시 저장
- 인터럽트 벡터로 점프
- 인터럽트 처리
- 복귀 주소 로드
- 마지막에 실행되던 주소로 점프
- 주 프로그램 마저 실행