인터럽트
프로세스 실행을 중단하고, 다른 동작을 수행하도록 요구하는 것을 말한다.
인터럽트 동작 순서
- 인터럽트가 발생하면 현재 실행중인 프로세스는 일시 정지 상태가 되며, 재시작하기 위해 프로세스 관련 정보를 임시로 저장한다.
- 인터럽트 컨트롤러가 실행되어 인터럽트의 처리 순서를 결정한다. 이 때 여러 개의 인터럽트가 동시에 발생했다면 우선순위를 고려하여 중요한 인터럽트부터 처리하도록 순서를 결정한다.
- 먼저 처리할 인터럽트가 결정되면 인터럽트 벡터에 등록된 인터럽트 핸들러가 실행된다.
- 인터럽트 핸들러 : 인터럽트 처리를 위해 미리 정의된 함수
- 인터럽트 벡터 : 인터럽트와 인터럽트 핸들러를 일대일로 연결한 자료구조
- 인터럽트 벡터에 연결된 핸들러가 인터럽트 처리를 마치면 일시 정지된 프로세스가 다시 실행되거나 종료된다.
- 입출력 완료 인터럽트 : 일시 정지된 프로세스가 다시 실행
- 메모리 영역 및 침법 인터럽트 : 프로세스 종료

동기적 인터럽트와 비동기적 인터럽트
-
동기적 인터럽트(사용자 인터럽트) : 프로세스가 실행중인 명령어로 인해 발생
- 프로그램 문제 때문에 발생하는 인터럽트
- 다른 사용자의 메모리 영역에 접근하는 경우 오버플로나 언더플로에 의해 발생
- 컴퓨터 작업자가 의도적으로 프로세스를 중단하기 위해 발생시킨 인터럽트
ctrl + c
- 입출력 장치 같은 주변장치의 조작에 의한 인터럽트
- 산술 연산 중 발생하는 인터럽트
-
비동기적 인터럽트
- 하드디스크 읽기 오류, 메모리 불량과 같은 하드웨어 오류
- 사용자가 직접 작동하는 키보드 인터럽트, 마우스 인터럽트
보통 동기적인 인터럽트를 예외(Exception), 비동기적인 인터럽트를 인터럽트라고 한다.