I/O complete
장치 완료 신호가 Waiting을 Ready로 되돌린다
I/O 완료 인터럽트는 잠든 프로세스를 깨우고, 스케줄러가 다시 CPU를 줄 수 있는 상태로 옮깁니다.
대기 이유
프로세스는 디스크, 네트워크, 키보드 같은 외부 작업을 기다린다.
깨우는 주체
장치와 인터럽트 핸들러가 완료 사실을 커널에 알린다.
다음 관문
Ready가 된 뒤에도 CPU 배정은 스케줄러가 결정한다.
01
Running
프로세스가 read 같은 I/O 요청을 보낸다.
02
Waiting
CPU를 반납하고 I/O 완료 이벤트를 기다린다.
03
Ready
인터럽트 핸들러가 프로세스를 실행 가능한 큐로 옮긴다.
04
Scheduled
스케줄러가 선택하면 다시 CPU에서 실행된다.
상태 큐 위치 실행 가능 여부
Running CPU 위 지금 명령을 실행 중이다.
Waiting 장치 대기 큐 CPU가 비어도 I/O 전에는 실행할 수 없다.
Ready Ready queue CPU만 받으면 즉시 실행할 수 있다.
완료 신호
I/O가 끝나야 Waiting에서 빠져나온다.
큐 이동
커널은 대기 큐에서 Ready queue로 위치를 바꾼다.
CPU 배정
깨어났다고 바로 Running이 되는 것은 아니다.