interrupt handoff

인터럽트와 프로세스 재개

CPU는 I/O를 기다리지 않고 다른 일을 하며, 완료 인터럽트가 오면 커널이 Wait Queue의 프로세스를 Ready Queue로 옮깁니다.

read

프로세스가 I/O 요청

시스템 콜로 디스크 읽기를 요청하면 실행 중이던 프로세스는 커널로 들어옵니다.

sleep

Wait Queue 이동

데이터가 아직 없으면 PCB 상태가 Waiting으로 바뀌고 CPU를 양보합니다.

dma

장치가 직접 전송

DMA 컨트롤러가 CPU 대신 메모리에 데이터를 채우고 완료 시점을 준비합니다.

irq

완료 인터럽트

컨트롤러가 CPU에 알리고, CPU는 IDT를 통해 커널 핸들러로 진입합니다.

wake

Ready Queue 복귀

ISR과 하반부 처리가 대기 프로세스를 깨워 실행 가능한 상태로 되돌립니다.

run

스케줄러 선택

타이머 틱이나 양보 지점에서 스케줄러가 다시 CPU를 줄지 결정합니다.

Running

현재 CPU 점유

명령어를 실행하다 I/O 요청, 예외, 타이머 인터럽트로 커널에 들어갑니다.

Waiting

장치 이벤트 대기

디스크, 네트워크, 키보드 입력처럼 CPU만으로 해결할 수 없는 일을 기다립니다.

Ready

CPU 할당 대기

데이터는 준비됐지만 곧장 실행되는 것이 아니라 스케줄러 선택을 기다립니다.