nonpreemptive scheduling에서는 프로세스가 종료되지 않는 이상 running state를 벗어나지 않는다. 즉, running state에서 ready state로 이동하지 않는다.
preemptive scheduling에서는 여러 요인에 의해, 실행되던 프로세스가 ready queue로 돌아가고 다른 프로세스가 선택되어 실행된다.
multilevel queueing system에서 각 큐에는 우선순위가 할당된다. 우선순위가 다른 프로세스(작업)들은 서로 다른 유형의 프로세스에 해당한다. 예를 들어 실시간 프로세스, 입출력 중심 프로세스, 대화형 프로세스는 높은 우선순위를 가지고 연산 위주의 CPU burst 긴 배치 프로세스는 낮은 우선순위를 갖는다. 각 level마다 다른 길이의 time quantum을 배정하는 것은 이러한 프로세스 유형에 따른 차이를 반영하는 좋은 방법이다.
SJF ⊂ Priority
SJF는 우선순위가 next CPU burst인 우선순위 스케줄링 알고리즘이다.
FCFS ⊂ Multilevel feedback queues
level이 하나이고, 유일한 큐의 스케줄링 알고리즘이 FCFS이면 FCFS에 해당한다. 참고로, 교재에서 제시한 MLFQ의 가장 아래 단계의 큐에서 FCFS를 사용한다.
FCFS ⊂ Priority
FCFS는 ready queue에 삽입된 순서가 이를수록 높은 우선순위를 갖는 우선순위 스케줄링 알고리즘이다.
관계가 없다. RR은 preemptive, time quantom 적용, 큐 삽입 순서 우선순위인 반면, SJF는 nonpreemptive, time quantum 미적용, CPU burst 우선순위이므로 교집합이 없다.
CPU utilization and response time
CPU utilization is increased if the overheads associated with context switching is minimized. The context switching overheads could be lowered by performing context switches infrequently. This could however result in increasing the response time for processes.
Average turnaround time and maximum waiting time
Average turnaround time is minimized by executing the shortest tasks first. Such a scheduling policy could however starve long-running tasks and thereby increase their waiting time.