인터럽트
인터럽트 - 프로그램을 실행하는 도중에 예기치못한상황이 발생함으로써 현재 실행중인 작업을 강제로 중단하고 발생한 상황을 처리하고 다시 복귀하는 작업(끼어들기라 생각하면 편함)
외부 인터럽트 , 내부 인터럽트 , 소프트웨어 인터럽트
외부 인터럽트 - 컴퓨터를 강제로 끄거나 정전이일어났을때, 외부 물리로 인해 일어난 인터럽트
내부 인터럽트 - 오버플로우나 0으로 나누기를 했을 때 발생
CPU를 중심으로 외부에서 일어나면 외부 인터럽트, 내부에서 일어나면 내부 인터럽트라 한다.
소프트웨어 인터럽트 - 프로그램 처리 중 발생하는 인터럽트
ex) 한글 프로그램을 끝내기 위해 종료명령을 눌렀을때, 프로그램의 제어를 한글에서 운영체제로 바꾸는 인터럽트
종류
- 외부 인터럽트: 입출력 장치, 타이밍 장치, 전원 등의 외부적인 요인에 의해서 발생하는 인터럽트.
- 전원 이상 인터럽트: 정전이나 전원이 이상이 있는 경우
- 기계 고장 인터럽트: CPU등의 기능적인 동작 오류가 발생한 경우
- 입출력 인터럽트(I/O Interrupt): 입출력의 종료 등의 이유로 CPU의 수행을 요청하는 인터럽트.
- 내부 인터럽트: 잘못된 명령이나 데이터를 사용할 때 발생하는 인터럽트
- 0으로 나누는 경우
- 오버플로우 또는 언더플로우가 발생한 경우
- 프로그램 상의 오류
- 프로그램에서 함수 등 명령어를 잘못 사용한 경우
- 소프트웨어 인터럽트: CPU가 인스트럭션을 수행하는 도중에 일어나는 인터럽트
내부 인터럽트 === 소프트웨어 인터럽트
외부 인터럽트 === 하드웨어 인터럽트