인터럽트는 CPU 가 특정 기능을 수행하는 도중 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능이다.
CPU 가 프로그램을 실행하고 있을 때, 입출력 H/W 등의 장치에 예외사항이 발생해 처리가 필요할 경우 CPU 에게 알려 처리할 수 있도록 하는 것을 말한다. | 출처 : 위키피디아
PCB에 저장하고, ISR(Interrupt Sevice Routine)을 수행한다. 인터럽트 처리를 마친 후 CPU 는 이전에 처리하던 작업으로 돌아간다.인터럽트 라인을 세팅해 인터럽트를 발생시킨다. 인터럽트 라인이 세팅되어 있는지를 검사한다.OS의 관심(attention)이 필요한 H/W 장치에 의해서 만들어진다.
OS의 수행이 필요한 요청이 있을 때 프로그램들에 의해 만들어진다.
System Call이나 Exception은 사용자 프로세스로부터 CPU의 제어권이 OS에게 이양되어 처리된다.
Process A 실행 중 디스크에서 어떤 데이터를 읽어 오라는 명령을 받았다고 가정해보자.
Process A 는 System Call 을 통해 인터럽트를 발생시킨다.CPU 는 현재 진행중인 기계어 코드를 완료한다.Process의 PCB에 저장한다.PC 에 다음에 실행할 명령의 주소를 저장한다.인터럽트 벡터를 읽고 ISR 주소 값을 얻어 ISR 로 점프해 루틴을 실행한다.ISR 의 끝에 IRET 명령어에 의해서 인터럽트가 해제된다.IRET 명령어가 실행되면 대피시킨 PC 값을 복원해서 이전 실행 위치로 복원한다.여러가지 인터럽트에 대해 해당 인터럽트를 발생 시 처리해야 할 루틴의 주소를 보관하고 있는 테이블

실제 인터럽트를 처리하기 위한 루틴으로 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)이라고도 한다.
입터럽트 서비스 루틴 혹은 인터럽트 핸들러라고 한다.인터럽트 벡터를 통해 해당 인터럽트 발생 시 처리해야 할 루틴의 주소를 알아낸다.CPU 가 수행하는 명령에는 특권 명령과 일반 명령이 있다.
일반 명령 : 메모리에서 자료를 읽어 오고, CPU 에서 계산을 하는 등의 명령이고 모든 프로그램이 수행할 수 있는 명령이다.특권 명령 : 보안이 필요한 명령으로, 입출력 장치나 타이머 등의 장치에 접근하는 명령이다. 항상 운영체제만이 수행할 수 있다.OS 는 kenel mode과 user mode 로 나뉘어 구동된다.
kenel mode : 운영체제 가 CPU 제어권을 가지고 명령을 수행하는 모드로, 일반 명령과 특권 명령을 모두 수행할 수 있다.user mode : 일반 사용자 프로그램이 CPU 의 제어권을 가지고 명령을 수행하는 모드이다.위의 Process A 가 프로그램 명령 수행 중 디스크 입출력 명령을 읽은 경우를 생각해보자.
사용자 프로그램은 입출력 장치에 접근하는 명령을 수행할 수 없다. user mode 에서 특권 명령을 수행할 수 없기 때문이다.
이런 경우, 사용자 프로그램은 OS 에게 시스템 콜을 통해 특권 명령을 대신 수행해달라고 요청한다. 시스템 콜은 주소 공간 자체가 다른 곳으로 이동해야 하므로 프로그램이 인터럽트 라인에 인터럽트를 세팅하는 명령을 통해 이루어진다.
시스템 콜은 커널 영역의 기능을 사용자 모드가 사용 가능하게 한다. 즉, 프로세스가 H/W 에 직접 접근해 필요한 기능을 수행할 수 있게 해준다.

참고