인터럽트는 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 분류할 수 있습니다.
일반적으로 인터럽트는 하드웨어 인터럽트를 가리키는 경우가 많고
후자를 SWI(SoftWare Interrupt)라고 구별하기도 합니다.
하드웨어 인터럽트
하드웨어 인터럽트는 CPU 외부의 디스크 컨트롤러나 주변장치로부터 요구되는 것으로,
운영체제의 처리를 요하는 상황을 알리기 위해 전기적인 신호를 사용해 구현됩니다.
하드웨어 인터럽트가 발생하는 예
소프트웨어 인터럽트
소프트웨어 인터럽트는 외부가 아닌 CPU 내부에서 자신이 실행한 명령이나 CPU의 명령 실행에
관련된 모듈이 변화하는 경우 발생합니다.
프로그램 실행 중 프로그램 상의 처리 불가능한 오류나 이벤트를 알리기 위한 경우 발생하는데,
이를 트랩(trap) 또는 예외(exception)라 부릅니다.
또한 프로그램 내에서 특별한 서비스를 요구하거나 감시(supervisor)를 목적으로 의도적으로
프로그램이 발생시킨 특별한 명령어에 의해 발생되기도 한다.
소프트웨어 인터럽트가 발생하는 예