프로그램을 실행하는 도중에 예기치 않은 상황 발생 시, 현재 실행중인 작업을 즉시 중단하고, 발생한 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것
외부/내부 인터럽트는 CPU의 하드웨어 신호에 의해 발생
소프트웨어 인터럽트는 명령어의 수행에 의해 발생
입출력 장치, 타이밍 장치, 전원 등 CPU 코어 외부적 요인으로 인해 발생
Exception Interrupt, Trap이라고도 부르며, 잘못된 명령이나 데이터 사용 시 발생
프로그램 처리 중 명령의 요청에 의해 발생(SVC 인터럽트)
예를들어 어떤 프로그램이 컴퓨터에 대한 통제권을 갖는 코드를 갖고 있을 때, 이러한 자원에 접근이 허락없이 수행될 수 없어야함. 즉, 이러한 자원에 접근하는 명령어는 Supervisor만 실행할 수 있어야 하고, 이것이 Kernel Mode(=Supervisor Mode)임.
응용프로그램은 SuperVisor Call(SVC)을 통해 허락을 맡은 후 Supervisor Mode로 변경하고 명령실행 후 다시 User Mode로 변경하는 과정을 거침
운영체제가 제공하는 서비스에 대한 프로그래밍 인터페이스가 System Call, System Call을 실행시키기 위한 CPU 명령어가 SVC
`요청->중단->보관->인터럽트 처리->재개
현재 실행 중이던 Micro Operation까지 수행
PCB(Process Control Block), PC(Program Counter) 저장
인터럽트를 요청한 장치를 식별-> 원인 파악
Interrupt Vector 테이블을 참조하여 호출할 ISR(Interrupt Service Routine) 주소 값을 얻음
실질적인 인터럽트 처리 작업을 함
서비스 루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 재귀적으로 1~5과정을 수행
ISR을 실행할 때 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생 방지 가능
상태 복구 명령어가 실행되면 저장해둔 PC(Program Counter)를 다시 복원, 이전 실행 위치로 복원함
PCB의 값을 이용하여 이전에 수행 중이던 프로그램 재개
참고
https://gyoogle.dev/blog/computer-science/operating-system/System%20Call.html
https://velog.io/@adam2/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%
https://justzino.tistory.com/4
https://jhnyang.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8%EC%9D%98-%EC%A2%85%EB%A5%98Types-of-Interrupt-trap-exception-timer-SVC-%EB%93%B1-%EC%99%B8%EB%B6%80-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8-%EB%82%B4%EB%B6%80-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8-SW%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8