인터럽트 : 프로그램 실행 중 예기치 못한 상황이 발생할 때 현재 작업을 중단하고 발생한 상황을 우선 처리한 후 원래 작업으로 복귀하는 것
외부 인터럽트 : 전원, 외부장치로 인한 인터럽트, 입출력
내부 인터럽트 : 잘못된 명령어나 데이터를 사용할 때 발생 (exception, trap, overflow, cache miss)
소프트웨어 인터럽트 : 프로그램의 원하는 위치에서 특수한 호출을 사용해 명령어를 발생할 수 있게 함 (SVC : SuperVisor Call)
- SCV 인터럽트가 발생하는 경우
- 사용자가 SVC 명령어를 사용해 의도적으로 호출
- 복잡한 입출력을 처리하는 경우
- 기억장치 할당, operator와 통신 할 경우
인터럽트 우선순위
외부 > 내부 > 소프트웨어
인터럽트 동작 과정
- 인터럽트 요청 신호 발생
- 현재 수행중인 명령어까지만 완료한 후 수행중인 프로그램을 일시 중지한다.
- 수행 중인 프로그램 상태를 안전한 장소에 보관한다.
- 인터럽트의 원인을 찾아 해당 인터럽트 서비스 루틴을 실행한다.
- 인터럽트 서비스 루틴이 끝나면 보관해 두었던 레지스터 내용과 프로그램 카운터 내용을 복구하여 인터럽트 당한 프로그램을 중단된 곳부터 다시 수행한다.
'Computer Science' 카테고리의 다른 글
경쟁상태란 무엇일까 (0) | 2022.07.06 |
---|---|
시스템 콜(System Call) (0) | 2022.07.06 |
프로세스와 스레드의 차이 (0) | 2022.06.14 |
파이프라인이란? (0) | 2022.06.09 |
중앙처리장치(CPU)의 작동원리 (0) | 2022.06.07 |