프로그램을 실행하는 도중, 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행 중이던 작업으로 복귀하여 계속 처리하는 것.
인터럽트 당한 시점의 레지스터와 PC(Program Counter : 다음 번에 실행할 명령어 주소)를 PCB에 저장해두고 CPU의 제어를 인터럽트 서비스 루틴에 넘긴다.
지금 수행 중인 일보다 더 중요한 일(ex. 입출력, 우선 순위 연산 등)이 발생하면 그 일을 먼저 처리하고 나서 하던 일을 계속해야 한다.
외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생
소프트웨어 인터럽트는 명령어의 수행에 의해 발생
전원 이상, 기계 착오, 외부 신호, 입출력
0으로 나누기가 발생, 오버플로우, 명령어를 잘못 사용한 경우(Exception), 디버깅시 break point
사용자가 프로그램을 실행시킬 때 발생, 소프트웨어 이용 중에 다른 프로세스를 실행 시키면 시분할 처리를 위해 자원 할당 동작이 수행된다.
사진 출처 : https://mindstation.tistory.com/164
전반적으로 PC의 값을 안전한 곳에 기억시켜 보존하고, 원인 판단, 인터럽트 처리루틴의 수행을 개시시키는 순서로 이뤄진다.
근데 위 처럼 인터럽트 기능이 없다면, 컨트롤러가 특정한 일을 할 시기를 알기 위해 지속적으로 체크를 해야 한다
이는 폴링이다.
즉, 컨트롤러가 입력을 받아들이는 방법(우선순위 판별방법)에는 2가지가 있다.
폴링 방식
인터럽트 방식
인터럽트 방식은 HW로 지원 받아야 하는 제약이 있지만,
폴링에 비해 신속 대응이 가능하다.
그래서 실시간 대응의 경우 = 인터럽트 방식이 필수적이다.
Q. 한컴오피스 '한글'을 클릭 후 빈 화면어 커서가 깜빡이고 있다. 이때 hello world를 작성하면 컴퓨터 내부에서 어떤일이 발생하는가?