프로세스가 스스로 CPU 소유권을 포기하는 방식으로 강제로 프로세스를 중지하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.
FCFS(First Come, First Served)
가장 먼저 온것을 가장먼저 처리하는 알고리즘으로 프로세스가 큐에 도착한 순서대로 실행되며, 한 번 실행되면 그 프로세스가 끝나야만 다음 프로세스를 실행시킬 수 있다. 큐가 하나이므로 모든 프로세스는 우선순위가 동일하다.
처리시간이 긴 프로세스가 CPU를 차지하여 다른 프로세스들이 준비 큐에서 오래 기다리는 현상(convoy effect)이 발생해 시스템의 효율성이 떨어진다는 단점이있다.
SJF(Shortest Job First)
실행시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다.
시간이 오래 걸리는 작업이 앞에 있고 간단한 작업이 뒤에 있으면 순서를 바꾸어 CPU를 배정한다. FCFS 스케줄링의 콘보이 효과를 완화하여 시스템의 효율성을 높인다.
운영체제가 프로세스의 종료 시간을 정확하게 예측하기 어렵다는 단점이 있다. 또한 작업 시간이 길다는 이유만으로 계속 밀린다면 공평성이 현저히 떨어진다.
기아현상
CPU 처리 시간이 긴 프로세스의 경우 처리 시간이 짧은 프로세스가 계속해서 들어오면 Ready Queue에서 무한정 CPU를 기다려야 하는 상황이 발생할 수 있다.
우선순위
SJF 스케줄링은 긴 시간을 가진 프로세스가 실행되지 않는 현상이 있다.(기아 현상) 우선순위는 이 단점을 오래된 작업일수록 우선순위를 높이는 방법(align)을 사용해 보완한 알고리즘이다.
대기시간이 늘어날수록 프로세스들의 우선순위를 증가시킨다.