
인터럽트(Interrupt)란 프로그램이 실행 도중 예기치 않은 상황이 발생하여 실행 중인 작업을 중지하고 CPU 에게 발생된 상황에 대한 우선 처리가 필요함을 알리는 것을 말한다.
인터럽트는
외부 인터럽트,내부 인터럽트,소프트웨어 인터럽트로 나뉜다.
타이머 인터럽트 : 타이머가 일정한 시간 간격으로 CPU에게 인터럽트를 요청입출력 인터럽트 : 속도가 느린 입출력장치가 입출력 준비가 완료되었음을 알리기 위해 인터럽트를 요청Trap 이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생명령어 실행 오류 : 나누기 0을 하는 경우사용 권한 위배 : 사용자가 OS만 사용할 수 있는 자원에 접근하는 경우SVC(SuperVisor Call)이 있다.User Mode 에서 실행한다. User Mode는 시스템 자원에 접근하는데 제한이 있다. Supervisor 만 실행 할 수 있고 이 것이 Kernel Mode이다.Supervisor Call 을 통해 허락을 받고 Kernel Mode(=Supervisor Mode)로 변경하여 자원에 접근 후 다시 User Mode로 변경하는 과정을 거친다.SV 는 System Call을 실행시키기 위한 CPU 명령어다.
- 위 그림 처럼 명령어 수행 중간에 인터럽트 요청이 들어오면 해당 명령어는 실행하고 난 후에 인터럽트를 처리한다.
- 즉, CPU 는 반복적으로 인터럽트 요청이 있는지 확인한다.
PC(Program Counter) : 다음번에 실행할 명령어 주소를 저장SR(Status Register) : 인터럽트 서비스 단계에서 SR 값이 바뀌는 경우도 있으므로 저장Interrupt Vector : 인터럽트 서비스 루틴에 대한 정보를 모아놓은 영역인터럽트 서비스 루틴(ISR)이란 특정 소스(source)가 인터럽트 요청을 하면 반복적으로 수행하는 일이 있다는 뜻이다. 다른 말로 인터럽트 핸들러(Interrupt Handler)라 부른다.출처 및 참고자료
Tech Interview
[OS기초] 인터럽트 제대로 이해하기
[컴퓨터구조] 인터럽트(Interrupt)란?
3. 인터럽트(Interrupt)