<aside> 💡 프로그램 실행 도중 예기치 못한 상황이 발생한 경우 작업을 즉시 중단하고 예외 상황에 대한 우선 처리가 필요함을 CPU에서 알림
수행 중인 일보다 더 중요한 일이 발생하면 그 일 먼저 처리하고나서 하던 일 해야해
</aside>
외부 인터럽트 (하드웨어 인터럽트)(Asynchronous interrupt)
CPU의 하드웨어 신호에 의해 발생
입출력장치나 전원 등 외부적인 요인으로 발생
인터럽트 받아들일지 결정 가능 → Interrupt Mask가 가능
Maskable Interrupt
Non Maskable Interrupt
소프트웨어 인터럽트(= Exception)
CPU 내부에서 실행하면서 인터럽트에 걸리는 경우
가장 대표적인 형태는 SVC 인터럽트(OS 호출)
exception
fault
trap
abort
<aside> 💡 내부 인터럽트와 소프트웨어 인터럽트를 따로보거나 합쳐서 내부 인터럽트로 혼용해서 사용되는 것 같음!
정리하다보니 소프트웨어 인터럽트에 내부 인터럽트가 속해있는 느낌이다
</aside>
<aside> 💡 구글 검색창 클릭 후 검색창에 커서가 깜빡이는중. hello world를 작성하면 컴퓨터 내부에서 어떤 일이 발생하는지?
</aside>
인터럽트는 프로그램 실행 중 CPU의 현재 처리 순서를 멈추고 다른 동작 수행하도록 요구
시스템콜은 OS가 제공하는 서비스에 대한 프로그래밍 인터페이스. 이를 실행시키기 위한 CPU명령어가 SVC → 그니까 소프트웨어 인터럽트의 일종이 시스템 콜인거지