CPU Scheduling - AndroBenchcsl.skku.edu/uploads/SSE3044S19/4-sched.pdfProportional Share Scheduling...

Post on 18-Mar-2020

10 views 0 download

Transcript of CPU Scheduling - AndroBenchcsl.skku.edu/uploads/SSE3044S19/4-sched.pdfProportional Share Scheduling...

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu)

CPU Scheduling

Jinkyu Jeong (jinkyu@skku.edu)Computer Systems Laboratory

Sungkyunkwan Universityhttp://csl.skku.edu

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 2

CPU Scheduling

• A policy deciding which process to run next, given a set of runnable processes– Happens frequently, hence should be fast

• Mechanism– How to transition?

• Policy– When to transition?

RunningReadyScheduled

Time slice exhausted

I/O or event wait

Blocked

I/O or event completion

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 3

Basic Approaches• Non-preemptive scheduling– The scheduler waits for the running process to voluntarily

yield the CPU– Processes should be cooperative

• Preemptive scheduling– The scheduler can interrupt a process and force a context

switch– What happens• If a process is preempted in the midst of updating the shared data?• If a process in a system call is preempted?

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 4

Terminologies• Workload– A set of job descriptions– e.g. arrival time, run time, etc.

• Scheduler– A logic that decides when jobs run

• Metric– Measurement of scheduling quality– e.g. turnaround time, response time, fairness, etc.

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 5

Workload Assumptions1. Each job runs for the same amount of time2. All jobs arrive at the same time

3. Once started, each job runs to completion4. All jobs only use the CPU (no I/O)

5. The run time of each job is known

• Metric: Turnaround time

!"#$%&$'#%( = !*'+,-."/'% − !&$$/1&-

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 6

FIFO

• First-Come, First-Served– Jobs are scheduled in order that they arrive– “Real-world” scheduling of people in lines• e.g. supermarket, bank tellers, McDonalds, etc.– Non-preemptive– Jobs are treated equally: no starvation

• Problems– Convoy effect• Average turnaround time can

be large if small jobs wait behind long ones

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 7

SJF

• Shortest Job First– Each job has a variable run time (Assumption 1 relaxed)– Choose the job with the smallest run time– Can prove that SJF shows the optimal turnaround time

under our assumptions– Non-preemptive

• Problems– Not optimal when jobs arrive at any time– Can potentially starve

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 8

FIFO vs. SJF

• FIFO

• SJF

A B C

0 20 40 60 80 100 120

A(10), B(10), C(10)

!"#$%&$'#%( = (+, + ., + /,)// = .,

A B C

0 20 40 60 80 100 120

A(100), B(10), C(10)

!"#$%&$'#%( = (+,, + ++, + +.,)// = ++,

AB C

0 20 40 60 80 100 120

A(100), B(10), C(10)

!"#$%&$'#%( = (+, + ., + +.,)// = 2,

A B C

0 20 40 60 80 100 120

A(100)

!"#$%&$'#%( = (+,, + 3, + +,,)// = 34. 6

B(10), C(10)

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 9

STCF

• Shortest Time-to-Completion First – Jobs are not available simultaneously (Assumption 2 relaxed)– Preemptive version of SJF (Assumption 3 relaxed)– If a new job arrives with the run time less than the remaining

time of the current job, preempt it

SJF

A B C

0 20 40 60 80 100 120

A(100)

!"#$%&$'#%( = (+,, + ., + +,,)/1 = .2. 4

B(10), C(10)

STCF

A B C

0 20 40 60 80 100 120

A(100)

!"#$%&$'#%( = (+5, + +, + 5,)/1 = 6,

B(10), C(10)

A

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 10

RR

• Round Robin– Run queue is treated as a circular FIFO queue– Each job is given a time slice (or scheduling quantum)• Multiple of the timer-interrupt period or the timer tick• Too short à higher context switch overhead• Too long à less responsive• Usually 10 ~ 100ms– Runs a job for a time slice and then switches to the next

job in the run queue– Preemptive– No starvation– Improved response time à great for time-sharing

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 11

SJF vs. RR

• RR focuses on a new metric: “response time”

– Typically, RR has higher turnaround time than SJF, but better response time

!"#$%&'$# = !)*"$+",' − !.""*/.0

SJF

!+,"'."&,'1 = (34 + 64 + 74)/3 = 64

A B C

0 20 40 60 80 100 120

A(30), B(30), C(30)

!"#$%&'$# = (4 + 34 + 64)/3 = 34

RR

!+,"'."&,'1 = (:4 + ;4 + 74)/3 = ;4

A B C

0 20 40 60 80 100 120

A(30), B(30), C(30)

A B C A B C

!"#$%&'$# = (4 + <4 + =4)/3 = <4

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 12

(Static) Priority Scheduling

• Each job has a (static) priority– cf.) nice(), renice(), setpriority(), getpriority()

• Choose the job with the highest priority to run next– ex.) shortest job in SJF

• Round-robin or FIFO within the same priority

• Can be either preemptive or non-preemptive

• Starvation problem– If there is an endless supply of high priority jobs, no low

priority job will ever run

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 13

Incorporating I/O• I/O-aware scheduling– Assumption 4 relaxed– Overlap computation with I/O– Treat each CPU burst as an independent job

• Example: A (interactive) + B (CPU-intensive)

I/O-aware STCF0 20 40 60 80 100 120

A A A

A A A AB B B BCPU

Disk

CPU burst I/O burst

STCF0 20 40 60 80 100 120

A A A

BA

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 14

xv6: CPU Scheduler

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 15

xv6: CPU Scheduler

• Round-robin scheduling– Every timer IRQ enforces an yield of a CPU

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 16

Towards a General CPU Scheduler• Goals– Optimize turnaround time– Minimize response time for interactive jobs

• Challenge: No a priori knowledge on the workloads– The run time of each job is known (Assumption 5)

• How can the scheduler learn the characteristics of the jobs and make better decisions?– Learn from the past to predict the future

(as in branch predictors or cache algorithms)

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 17

MLFQ

• Multi-Level Feedback Queue– A number of distinct queues for each priority level– Priority scheduling b/w queues, round-robin in the same

queue

– Priority is varied based onits observed behavior

Rule 1: If Priority(A) > Priority(B), A runs (B doesn’t). Rule 2: If Priority(A) = Priority(B), A & B run in RR.

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 18

Changing Priority

• Typical workload: a mix of– Interactive jobs: short-running, require fast response time– CPU-intensive jobs: need a lot of CPU time, don’t care about

response time

• Attempt #1: Dynamic Priority Change

Rule 3: When a job enters the system, it is placed at thehighest priority (the topmost queue).

Rule 4a: If a job uses up an entire time slice while running, its priority is reduced (i.e. moves down one queue).

Rule 4b: If a job gives up the CPU before the time slice is up,it stays at the same priority level.

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 19

Scheduling Under Rules 1-4

• Workload– A: long-running job, B: short-running job, C: interactive job

A B C

A

A

A

0 20 40 60 80 100 120 140 160 180 200 220

Q0

Q1

Q2

A A A A

B

B

A A A A A A A A AA

B terminated

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 20

Priority Boost

• Problems in Attempt #1– Long-running jobs can starve due to too many interactive jobs– A malicious user can game the scheduler by relinquishing the

CPU just before the time slice is expired– A program may change its behavior over time

• Attempt #2: Priority Boost

Rule 5: After some time period S, move all the jobs in thesystem to the topmost queue.

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 21

Scheduling Under Rules 1-5

A

A

A

0 20 40 60 80 100 120 140 160 180 200 220

Q0

Q1

Q2

A A A A A A A

A

A

A

A A

A

A

A A A

A A

Boost

Boost

Boost

WithoutPriorityBoost

0 20 40 60 80 100 120 140 160 180 200 220

Q0

Q1

Q2

WithPriorityBoost

… starvation …

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 22

Better Accounting

• Attempt #3: Revise Rule 4a/4b for better accountingRule 4: Once a job uses up its time allotment at a given

level (regardless of how many times it has given up the CPU), its priority is reduced.

Q0

Q1

Q2

0 20 40 60 80 100

B B B B B B B B B

Without precise accounting0 20 40 60 80 100

B

B

A A B A B A BB

With precise accounting

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 23

UNIX Scheduler• MLFQ– Preemptive priority scheduling– Time-shared based on time slice– Processes dynamically change priority– 3~4 classes spanning ~170 priority levels (Solaris 2)

• Favor interactive processes over CPU-bound processes

• Use aging: no starvation– Increase priority as a function of wait time– Decrease priority as a function of CPU time

• Many ugly heuristics for voo-doo constants

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 24

Proportional Share Scheduling• Basic concept– A weight value is associated with each process– The CPU is allocated to the process in proportion to its

weight

• Two contexts– Fair queueing (in the context of communication networks)

• Packet scheduling – Proportional share (in the context of operating systems)

• Process scheduling

24

time

Task A (weight 25.0%)Task B (weight 12.5%)Task C (weight 50.0%)Task D (weight 12.5%)

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 25

Lottery and Stride Scheduling• Tickets: relative resource rights– Task has tickets– A total of tickets

• Lottery scheduling: probabilistic algorithm– Use random number generator to select a winning ticket– Task is probabilistically guaranteed a rate of

• Stride scheduling: deterministic algorithm– “Stride” is inversely proportional to tickets– Task with minimum “pass” value is selected and its pass is

advanced by its stride

25

imitM

it /ip m M=

SSE3044: Operating Systems, Spring 2019, Jinkyu Jeong (jinkyu@skku.edu) 26

Stride Scheduling

• Task : tickets = 3, stride = 2

• Task : tickets = 2, stride = 3

• Task : tickets = 1, stride = 6

26

1t

2t

3t

1tpass

time 0 1 2 3 4 5 6 7 8 9 10 11 12 13

2

3

6 6

3

4 4

6

6

6

6

6

8

6

6

8

9

6

8

9

12

10

9

12

10

12

12

12

12

12

14

12

12

14

15

12

14

15

18

16

15

18

14

16

18

18

‘s pass value

2t ‘s pass value

3t ‘s pass value

Ties are broken arbitrarily

Initial pass values are set to stride values

Pass is advanced by stride 3Smallest value is chosen