5.2 Explain the difference between preemptive and nonpreemptive scheduling.

nonpreemptive scheduling에서는 프로세스가 종료되지 않는 이상 running state를 벗어나지 않는다. 즉, running state에서 ready state로 이동하지 않는다.

preemptive scheduling에서는 여러 요인에 의해, 실행되던 프로세스가 ready queue로 돌아가고 다른 프로세스가 선택되어 실행된다.

5.6 What advantage is there in having different time-quantum sizes at different levels of a multilevel queueing system?

multilevel queueing system에서 각 큐에는 우선순위가 할당된다. 우선순위가 다른 프로세스(작업)들은 서로 다른 유형의 프로세스에 해당한다. 예를 들어 실시간 프로세스, 입출력 중심 프로세스, 대화형 프로세스는 높은 우선순위를 가지고 연산 위주의 CPU burst 긴 배치 프로세스는 낮은 우선순위를 갖는다. 각 level마다 다른 길이의 time quantum을 배정하는 것은 이러한 프로세스 유형에 따른 차이를 반영하는 좋은 방법이다.

5.7 What (if any) relation holds between the following pairs of algorithm sets?

a. Priority and SJF

SJF ⊂ Priority

SJF는 우선순위가 next CPU burst인 우선순위 스케줄링 알고리즘이다.

b. Multilevel feedback queues and FCFS

FCFS ⊂ Multilevel feedback queues

level이 하나이고, 유일한 큐의 스케줄링 알고리즘이 FCFS이면 FCFS에 해당한다. 참고로, 교재에서 제시한 MLFQ의 가장 아래 단계의 큐에서 FCFS를 사용한다.

c. Priority and FCFS

FCFS ⊂ Priority

FCFS는 ready queue에 삽입된 순서가 이를수록 높은 우선순위를 갖는 우선순위 스케줄링 알고리즘이다.

d. RR and SJF

관계가 없다. RR은 preemptive, time quantom 적용, 큐 삽입 순서 우선순위인 반면, SJF는 nonpreemptive, time quantum 미적용, CPU burst 우선순위이므로 교집합이 없다.

5.12 Discuss how the following pairs of scheduling criteria conflict in certain settings.