interrupt state map

인터럽트는 대기 중인 일을 다시 움직이는 신호다

장치 이벤트, 예외, 타이머는 현재 문맥을 저장하고 커널이 큐와 프로세스 상태를 갱신하게 만든다.
인터럽트 처리 흐름
구간 커널이 하는 일 상태 변화
event 장치, 예외, 타이머 이벤트를 감지한다 현재 실행 흐름을 잠시 멈춘다
save PC와 레지스터 같은 문맥을 보존한다 나중에 같은 위치로 돌아갈 근거를 남긴다
handler ISR이 원인별 상태를 갱신한다 I/O 완료나 예외 결과가 큐에 반영된다
wake 대기 중이던 프로세스를 Ready로 옮긴다 스케줄러가 다음 실행 후보를 다시 고른다
판단 기준
폴링 CPU가 계속 묻는 방식이라 단순하지만 낭비가 커질 수 있다.
DMA 컨트롤러가 데이터를 옮기고 CPU는 완료 인터럽트만 받는다.
타이머 무한 루프 중인 프로세스도 주기적으로 CPU를 빼앗길 수 있다.
I/O 완료는 Waiting에서 Ready로 이동하는 명확한 전환점이다.