Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO...

90
Scheduling: RR, Priority, MLFQ, and Lottery CS 571: Operating Systems (Spring 2020) Lecture 5 Yue Cheng Some material taken/derived from: Wisconsin CS-537 materials created by Remzi Arpaci-Dusseau. Licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Transcript of Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO...

Page 1: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Scheduling: RR, Priority, MLFQ,

and LotteryCS 571: Operating Systems (Spring 2020)

Lecture 5

Yue Cheng

Some material taken/derived from: • Wisconsin CS-537 materials created by Remzi Arpaci-Dusseau.Licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Page 2: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

• CPU scheduling worksheet posted on BB

2Y. Cheng GMU CS571 Spring 2020

Page 3: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Review: FIFO, SJF

3Y. Cheng GMU CS571 Spring 2020

Page 4: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

4Y. Cheng GMU CS571 Spring 2020

Page 5: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

FIFO

• First-In, First-Out: Run jobs in arrival (time) order

5Y. Cheng GMU CS571 Spring 2020

Page 6: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

First-In, First-Out: Run jobs in arrival (time) orderDef: waiting_time = start_time – arrival_time

Process Burst TimeP1 5P2 5P3 5

o Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

o Waiting time for P1 = 0; P2 = 5; P3 = 10o Average waiting time: 5

FIFO

6

P1 P2 P3

5 10 150

Y. Cheng GMU CS571 Spring 2020

Page 7: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

First-In, First-Out: Run jobs in arrival (time) orderWhat is the average turnaround time? (Q2)?Def: turnaround_time = completion_time – arrival_time

Process Burst TimeP1 5P2 5P3 5

o Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

o Waiting time for P1 = 0; P2 = 5; P3 = 10o Average waiting time: 5

FIFO

7

P1 P2 P3

5 10 150

Y. Cheng GMU CS571 Spring 2020

Page 8: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

First-In, First-Out: Run jobs in arrival (time) orderWhat is the average turnaround time? (Q2)?Def: turnaround_time = completion_time – arrival_time

Process Burst TimeP1 5P2 5P3 5

o Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

FIFO

8

P1 P2 P3

5 10 150

Y. Cheng GMU CS571 Spring 2020

Page 9: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

FIFO

9

P1 P2 P3

5 10 150

First-In, First-Out: Run jobs in arrival (time) orderWhat is the average turnaround time? (Q2)?Def: turnaround_time = completion_time – arrival_time

Process Burst TimeP1 5P2 5P3 5

o Suppose that the processes arrive in order: P1 , P2 , P3 The Gantt Chart for the schedule:

Average turnaround time: (5+10+15)/3 = 10

Page 10: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

10Y. Cheng GMU CS571 Spring 2020

Page 11: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

11Y. Cheng GMU CS571 Spring 2020

Page 12: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: Big First JobJOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

12

What is the average turnaround time? (Q3)

Y. Cheng GMU CS571 Spring 2020

Page 13: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: Big First JobJOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

13

P1 P2 P3

80 85 900

Y. Cheng GMU CS571 Spring 2020

Page 14: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: Big First JobJOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

14

P1 P2 P3

80 85 900

Average turnaround time: (80+85+90) / 3 = 85

Y. Cheng GMU CS571 Spring 2020

Page 15: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Convoy Effect

15Y. Cheng GMU CS571 Spring 2020

Page 16: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Better Schedule?

16

P1P2 P3

Y. Cheng GMU CS571 Spring 2020

Page 17: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Passing the Tractor

• New scheduler: SJF (Shortest Job First)

• Policy: When deciding which job to run, choose the one with the smallest run_time

17Y. Cheng GMU CS571 Spring 2020

Page 18: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: SJF

18

JOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

What is the average turnaround time with SJF? (Q4)

Y. Cheng GMU CS571 Spring 2020

Page 19: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: SJF

19

JOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

P1P2 P3

5 10 900

Y. Cheng GMU CS571 Spring 2020

Page 20: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example: SJF

20

JOB arrival_time run_time

P1 ~0 80

P2 ~0 5

P3 ~0 5

P1P2 P3

5 10 900

Average turnaround time: (5+10+90) / 3 = 35Y. Cheng GMU CS571 Spring 2020

Page 21: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

21Y. Cheng GMU CS571 Spring 2020

Page 22: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

22Y. Cheng GMU CS571 Spring 2020

Page 23: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Shortest Job First (Arrival Time)

23

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

What is the average turnaround time with SJF? (Q5)

Y. Cheng GMU CS571 Spring 2020

Page 24: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Shortest Job First (Arrival Time)

24

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

P1 P3 P2

80 90 1100[P2, P3 arrive at 15]

Y. Cheng GMU CS571 Spring 2020

Page 25: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Shortest Job First (Arrival Time)

25

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

Average turnaround time: (80+75+95) / 3 = ~83.3

P1: 80P2: 75P3: 95

P1 P3 P2

80 90 1100

Y. Cheng GMU CS571 Spring 2020

Page 26: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

A Preemptive Scheduler

• Previous schedulers: FIFO and SJF are non-preemptive

• New scheduler: STCF (Shortest Time-to-Completion First)

• Policy: Switch jobs so we always run the one that will complete the quickest

26Y. Cheng GMU CS571 Spring 2020

Page 27: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

SJF

27

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

P1 P3 P2

80 90 1100[P2, P3 arrive at 15]

Y. Cheng GMU CS571 Spring 2020

Page 28: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

28

P1 P2P3

15 25 1100

[P2, P3 arrive]

JOB arrival_time run_time

P1 ~0 80P2 ~15 20P3 ~15 10

45

P1

What is the average turnaround time with SRTF? (Q6)

STCF

Y. Cheng GMU CS571 Spring 2020

Page 29: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

29

P1 P2P3

15 25 1100

[P2, P3 arrive]

JOB arrival_time run_time

P1 ~0 80P2 ~15 20P3 ~15 10

45

P1

P1: 110P3: 10P2: 30

Average turnaround time: (110+30+10) / 3 = 50

STCF

Y. Cheng GMU CS571 Spring 2020

Page 30: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

30

P1 P2P3

15 25 1100

[P2, P3 arrive]

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

45

P1

What is the average waiting time with STCF? (Q7)

STCF

Y. Cheng GMU CS571 Spring 2020

Page 31: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

31

P1 P2P3

15 25 1100

[P2, P3 arrive]

JOB arrival_time run_time

P1 ~0 80

P2 ~15 20

P3 ~15 10

45

P1

P1: 30P3: 0P2: 10

Average waiting time: (30+10+0) / 3 = ~13.3

STCF

Y. Cheng GMU CS571 Spring 2020

Page 32: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Outline

• Scheduling algorithms• First In, First Out (FIFO)• Shortest Job First (SJF)• Shortest Time-to-Completion First (STCF)

• Optimality discussion• Round Robin (RR)• Priority• Multi-Level Feedback Queue (MLFQ)• Lottery Scheduling

32Y. Cheng GMU CS571 Spring 2020

Page 33: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Optimality of SJF and STCF

• Non-preemptive SJF is optimal if all the processes are ready simultaneouslyoGives minimum average waiting time for a given set

of processes

33Y. Cheng GMU CS571 Spring 2020

Page 34: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Optimality of SJF and STCF

• Non-preemptive SJF is optimal if all the processes are ready simultaneouslyoGives minimum average waiting time for a given set

of processes

• What is the intuition behind the optimality of STCF?

34Y. Cheng GMU CS571 Spring 2020

Page 35: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Optimality of SJF and STCF

• Non-preemptive SJF is optimal if all the processes are ready simultaneouslyoGives minimum average waiting time for a given set

of processes

• What is the intuition behind the optimality of STCF?• A: STCF is optimal, considering a more realistic

scenario where all the processes may be arriving at different times

35Y. Cheng GMU CS571 Spring 2020

Page 36: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Optimality of SJF and STCF

• Non-preemptive SJF is optimal if all the processes are ready simultaneouslyoGives minimum average waiting time for a given set

of processes

• What is the intuition behind the optimality of SRTF?• A: SRTF is optimal, considering a more realistic

scenario where all the processes may be arriving at different times

36

Q: What’s the problem?We don’t exactly know how long a job would run!

Y. Cheng GMU CS571 Spring 2020

Page 37: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Estimating the Length of Next CPU Burst

• Idea: Based on the observations in the recent past, we can try to predict

• Techniques such as exponential averaging are based on combining the observations in the past and our predictions using different weights

• Exponential averaging• tn: actual length of the nth CPU burst• zn+1: predicted value for the next CPU burst• zn+1 = k.tn + (1-k).zn• Commonly, k is set to ½

37Y. Cheng GMU CS571 Spring 2020

Page 38: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Response Time

• Response time definitionTresponse = Tfirst_run – Tarrival

• SJF’s average response time (all 3 jobs arrive at same time)•(0 + 5 + 10)/3 = 5

38GMU CS571 Spring 2020

Page 39: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Waiting, Turnaround, Response

39

P1 P2P3

[P2, P3 arrive at 15]

P1

P1’s waiting time:

P2’s turnaround time:

P3’s response time:

0 25 35 45 120

Y. Cheng GMU CS571 Spring 2020

Page 40: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Waiting, Turnaround, Response

40

P1 P2P3 P1

P1’s waiting time: 0+20=20

P2’s turnaround time: 45-15=30

P3’s response time: 25-15=10

Q: What is P1’s response time?

[P2, P3 arrive at 15]

0 25 35 45 120

Y. Cheng GMU CS571 Spring 2020

Page 41: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Round Robin (RR)

41Y. Cheng GMU CS571 Spring 2020

Page 42: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

42Y. Cheng GMU CS571 Spring 2020

Page 43: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

43Y. Cheng GMU CS571 Spring 2020

Page 44: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Extension to Multiple CPU & I/O Bursts

• When the process arrives, it will try to execute its first CPU burst• It will join the ready queue• The priority will be determined according to the underlying scheduling

algorithm and considering only that specific (i.e. first) burst

• When it completes its first CPU burst, it will try to perform its first I/O operation (burst)• It will join the device queue• When that device is available, it will use the device for a time period

indicated by the length of the first I/O burst.

• Then, it will re-join the ready queue and try to execute its second CPU burst• Its new priority may now change (as defined by its second CPU burst)!

44Y. Cheng GMU CS571 Spring 2020

Page 45: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Round Robin (RR)• Each process gets a small unit of CPU time

(time quantum). After this time has elapsed, the process is preempted and added to the end of the ready queue• Newly-arriving processes (and processes that

complete their I/O bursts) are added to the end of the ready queue• If there are n processes in the ready queue and the

time quantum is q, then no process waits more than (n-1)q time units• Performance• q large Þ FIFO• q small Þ Processor Sharing (The system appears to

the users as though each of the n processes has its own processor running at the (1/n)th of the speed of the real processor)

45Y. Cheng GMU CS571 Spring 2020

Page 46: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Not I/O Aware

46

Poor use of resources

Y. Cheng GMU CS571 Spring 2020

Page 47: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Not I/O Aware

47

Poor use of resources

I/O-intensive CPU-intensive

Y. Cheng GMU CS571 Spring 2020

Page 48: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

I/O Aware (Overlap)

48

Overlap allows better use of resources!

Y. Cheng GMU CS571 Spring 2020

Page 49: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

• SJF’s average response time• (0 + 5 + 10) / 3 = 5

• RR’s average response time (time quantum = 1)• (0 + 1 + 2) / 3 = 1

49

Process Burst TimeA 5B 5C 5

RR

Y. Cheng GMU CS571 Spring 2020

Page 50: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Tradeoff Consideration

• Typically, RR achieves higher average turnaround time than SJF, but better response time• Turnaround time only cares about when processes

finish

• RR is one of the worst policies • -IF- turnaround time is the metric

50Y. Cheng GMU CS571 Spring 2020

Page 51: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Choosing a Time Quantum• The effect of quantum size on context-switching

time must be carefully considered• The time quantum must be large with respect to the

context-switch time• Turnaround time also depends on the size of the

time quantum

Y. Cheng GMU CS571 Spring 2020 51

Page 52: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

52Y. Cheng GMU CS571 Spring 2020

Time Quantum vs. Turnaround Time

Page 53: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

53

Q: What’s the takeaway?

Y. Cheng GMU CS571 Spring 2020

Time Quantum vs. Turnaround Time

Page 54: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

54Y. Cheng GMU CS571 Spring 2020

Page 55: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Workload Assumptions

1. Each job runs for the same amount of time

2. All jobs arrive at the same time

3. All jobs only use the CPU (no I/O)

4. The run-time of each job is known

55Y. Cheng GMU CS571 Spring 2020

Page 56: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Priority-Based Scheduling

56Y. Cheng GMU CS571 Spring 2020

Page 57: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Priority-Based Scheduling

• A priority number (integer) is associated with each process

• The CPU is allocated to the process with the highest priority

o(smallest integer º highest priority)o Preemptiveo Non-preemptive

57Y. Cheng GMU CS571 Spring 2020

Page 58: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example for Priority-Based SchedulingProcessAaiBurst TimeT PriorityP1 10 3P2 1 1P3 2 4P4 1 5P5 5 2

• Priority scheduling Gantt Chart

• Average waiting time = 8.2

58

P2 P3P5

1 180 16

P4

196

P1

Y. Cheng GMU CS571 Spring 2020

Page 59: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Priority-Based Scheduling (cont.)• Priority Assignment

• Internal factors: timing constraints, memory requirements, the ratio of average I/O burst to average CPU burst …

• External factors: Importance of the process, financial considerations, hierarchy among users …

• Problem: Indefinite blocking (or starvation) – low priority processes may never execute

• One solution: Agingo As time progresses increase the priority of the processes that

wait in the system for a long time

59Y. Cheng GMU CS571 Spring 2020

Page 60: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Multi-Level Feedback Queue (MLFQ)

60Y. Cheng GMU CS571 Spring 2020

Page 61: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Multi-Level Feedback Queue (MLFQ)

• Goals of MLFQ• Optimize turnaround time

• In reality, SJF does not work since OS does not know how long a process will run

• Minimize response time • Unfortunately, RR is really bad on optimizing turnaround

time

61Y. Cheng GMU CS571 Spring 2020

Page 62: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

MLFQ: Basics

• MLFQ maintains a number of queues (multi-level queue)• Each assigned a different priority level

• Priority decides which process should run at a given time

62Y. Cheng GMU CS571 Spring 2020

Page 63: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

MLFQ Example

63

How to know process type to set priority?1. nice2. history

Y. Cheng GMU CS571 Spring 2020

Page 64: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

How to Check Nice Values in Linux?

• % ps ax -o pid,ni,cmd

64Y. Cheng GMU CS571 Spring 2020

Page 65: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

MLFQ Example

65

How to know process type to set priority?1. nice2. history

In this example, A and B are given high priority to run, while C and D may starve

Y. Cheng GMU CS571 Spring 2020

Page 66: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

MLFQ: Basic Rules

• MLFQ maintains a number of queues (multi-level queue)• Each assigned a different priority level

• Priority decides which process should run at a given time

66Y. Cheng GMU CS571 Spring 2020

Page 67: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Attempt #1: Change Priority

• Workload• Interactive processes (many short-run CPU bursts)

• Long-running processes (CPU-bound)

• Each time quantum = 10ms

67Y. Cheng GMU CS571 Spring 2020

Page 68: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 1: One Single Long-Running Process• A process enters at highest priority (time

quantum = 10ms)

68Y. Cheng GMU CS571 Spring 2020

Page 69: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 1: One Single Long-Running Process• A process enters at highest priority (time

quantum = 10ms)

69Y. Cheng GMU CS571 Spring 2020

Page 70: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 1: One Single Long-Running Process• A process enters at highest priority (time

quantum = 10ms)

70Y. Cheng GMU CS571 Spring 2020

Page 71: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 2: Along Came a Short-Running Process• Process A: long-running process (start at 0)

71

Process A

Y. Cheng GMU CS571 Spring 2020

Process B

Page 72: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

GMU CS571 Spring 2020

Example 2: Along Came a Short-Running Process• Process A: long-running process (start at 0)

• Process B: short-running interactive process (start at 100)

72

Process A

Process B

Y. Cheng

Page 73: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 2: Along Came a Short-Running Process• Process A: long-running process (start at 0)

• Process B: short-running interactive process (start at 100)

73

Process A

Process B

Y. Cheng GMU CS571 Spring 2020

Page 74: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

GMU CS571 Spring 2020

Example 2: Along Came a Short-Running Process• Process A: long-running process (start at 0)

• Process B: short-running interactive process (start at 100)

74

Process A

Process B

Y. Cheng

Page 75: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

GMU CS571 Spring 2020

Example 3: What about I/O?

• Process A: long-running process • Process B: I/O-intensive interactive process

(each CPU burst = 1ms)

75

CPU-intensive Process A

I/O-intensive Process BRule 4b

Y. Cheng

Page 76: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

GMU CS571 Spring 2020

Example 4: What’s the Problem?

• Process A: long-running process

• Process B + C: Interactive process

76

Interactive Process B

Interactive Process C

Y. Cheng

Page 77: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Example 4: What’s the Problem?

• Process A: long-running process

• Process B + C: Interactive process

77

CPU-intensive Process Astarves!

Y. Cheng GMU CS571 Spring 2020

Interactive Process B

Interactive Process C

Page 78: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Attempt #2: Priority Boost

• Simple idea: Periodically boost the priority of all processes

78

CPU-intensive Process Aproceeds!

Y. Cheng

Interactive Process B

Interactive Process C

Page 79: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Tuning MLFQ

• MLFQ scheduler is defined by many parameters:• Number of queues• Time quantum of each queue• How often should priority be boosted?• A lot more…

• The scheduler can be configured to match the requirements of a specific system• Challenging and requires experience

79Y. Cheng GMU CS571 Spring 2020

Page 80: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling

80Y. Cheng GMU CS571 Spring 2020

Page 81: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling

• Goal: Proportional share• One of the fair-share schedulers

• Approach• Gives processes lottery tickets• Whoever wins runs• Higher priority à more tickets

81Y. Cheng GMU CS571 Spring 2020

Page 82: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Code

82Y. Cheng GMU CS571 Spring 2020

Page 83: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

83

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

Y. Cheng GMU CS571 Spring 2020

Page 84: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

84

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = random(402)

Y. Cheng GMU CS571 Spring 2020

Page 85: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

85

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

Y. Cheng GMU CS571 Spring 2020

Page 86: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

86

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

Is 1 > 102?

Y. Cheng GMU CS571 Spring 2020

Page 87: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

87

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

Is 2 > 102?

Y. Cheng GMU CS571 Spring 2020

Page 88: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

88

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

Is 102 > 102?

Y. Cheng GMU CS571 Spring 2020

Page 89: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

89

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

Is 302 > 102?

Y. Cheng GMU CS571 Spring 2020

Page 90: Scheduling: RR, Priority, MLFQ, and Lottery · A Preemptive Scheduler •Previous schedulers: FIFO and SJF are non-preemptive •New scheduler: STCF (Shortest Time-to-Completion First)

Lottery Scheduling Example

90

Job A(1)

Job B(1)

Job C(100)

Job D(200)

Job E(100)

402 total tickets

winner = 102

302 > 102

OS picks Job D to run!

Y. Cheng GMU CS571 Spring 2020