인터럽트란
- 컴퓨터의 프로세서가 현재 실행 중인 작업을 중단하고, 발생한 특정 이벤트를 처리하도록 하는 신호
- 하드웨어 또는 소프트웨어에 의해 발생할 수 있으며, 시스템에서 발생하는 다양한 이벤트(예: 타이머, 입출력 장치, 시스템 오류)를 처리하는 데 사용됨

외부 인터럽트
- 컴퓨터 외부 장치에 의해 발생하는 인터럽트
- 키보드 입력, 마우스 클릭, 네트워크 패킷 수신, 하드디스크 데이터 읽기/쓰기
- CPU 외부에서 발생하므로, 이벤트 처리를 위해 CPU는 외부 인터럽트를 받아들임
내부 인터럽트
- CPU 내부에서 발생하는 인터럽트
- 산술 오버플로우, 0으로 나누기와 같은 예외 상황
- 시스템 타이머에 의해 발생하는 타이머 인터럽트
- 프로그램 실행 중에 발생할 수 있는 예외 상황을 처리하는 데 주로 사용
소프트웨어 인터럽트
- 프로세서가 특정 명령어(보통 'INT' 명령어)를 실행할 때 발생
- 주로 운영체제 호출(System Call)과 같이 프로그램에서 특정 기능을 실행하기 위해 사용
- 프로그램이 직접 CPU에게 인터럽트를 발생시키는 것으로, 주로 운영체제의 기능을 호출하거나 디버깅 목적으로 사용
인터럽트 처리 과정
- 인터럽트 발생 감지 : 하드웨어나 소프트웨어가 인터럽트를 발생시키면 CPU는 이를 감지
- 현재 작업 저장 : CPU는 현재 작업 상태(레지스터, 프로그램 카운터 등)을 저장
- 인터럽트 처리 루틴 실행 : CPU는 인터럽트 벡터 테이블을 참조하여 해당 인터럽트를 처리하는 루틴(인터럽트 서비스 루틴, ISR)를 실행
- 원래 작업 복원 : 인터럽트 처리 후, CPU는 저장된 작업 상태를 복원하고 원래 작업을 계속 수행
폴링 방식
- CPU가 주기적으로 각 장치나 이벤트를 검사하여 처리할 작업이 잇는 확인하는 방식
- 구현이 단순하지만 CPU 자원을 비효율적으로 사용하게 됨
- CPU는 작업이 없는 동안 계속해서 장치를 확인해야 하기 때문에 자원이 낭비됨
인터럽트 방식
- 장치나 소프트웨어가 직접 CPU에 신호를 보내 작업을 요청하는 방식
- CPU가 불필요한 작업을 하지 않고, 필요할 때만 작업을 처리할 수 있어 효율적
- CPU는 필요한 경우에만 인터럽트를 처리하므로 시스템 자원의 낭비를 줄일 수 있음