CPU 스케줄링 (CPU Scheduling) 단일 프로세서 시스템에서는, 한 번에 단 하나의 프로세스만 실행될 수 있다. 다른 모든 프로세스들은 CPU가 사용 가능해지고 자신이 다시 스케줄링될 때까지 반드시 기다려야만 하는 것이다. 멀티프로그래밍 시스템에서는 CPU 사용을 최대화하기 항상 몇 개의 프로세스들이 돌아가고 있다. 하지만 프로세스는 일반적으로 입출력 요청 등이 들어오면 그 요청이 완료될 때까지 대기해야 한다. 만약 컴퓨터 시스템이 CPU를 단순히 idle상태로 존재하도록 둔다면, 요청이 끝나길 기다리는 동안 아무것도 하지 않는 것이다. 이 때의 대기 시간은 그저 낭비될 뿐이다. 따라서 멀티프로그래밍 시스템은 이 필연적인 대기 시간을 효율적으로 사용하려 한다. 실행 중인 프로세스가 대기해야 할..