프로세스가 I/O 요청
시스템 콜로 디스크 읽기를 요청하면 실행 중이던 프로세스는 커널로 들어옵니다.
CPU는 I/O를 기다리지 않고 다른 일을 하며, 완료 인터럽트가 오면 커널이 Wait Queue의 프로세스를 Ready Queue로 옮깁니다.
시스템 콜로 디스크 읽기를 요청하면 실행 중이던 프로세스는 커널로 들어옵니다.
데이터가 아직 없으면 PCB 상태가 Waiting으로 바뀌고 CPU를 양보합니다.
DMA 컨트롤러가 CPU 대신 메모리에 데이터를 채우고 완료 시점을 준비합니다.
컨트롤러가 CPU에 알리고, CPU는 IDT를 통해 커널 핸들러로 진입합니다.
ISR과 하반부 처리가 대기 프로세스를 깨워 실행 가능한 상태로 되돌립니다.
타이머 틱이나 양보 지점에서 스케줄러가 다시 CPU를 줄지 결정합니다.
명령어를 실행하다 I/O 요청, 예외, 타이머 인터럽트로 커널에 들어갑니다.
디스크, 네트워크, 키보드 입력처럼 CPU만으로 해결할 수 없는 일을 기다립니다.
데이터는 준비됐지만 곧장 실행되는 것이 아니라 스케줄러 선택을 기다립니다.