Top Banner
Recap First-Come, First-Served (FCFS) Run to completion in order of arrival Pros: simple, low overhead, good for batch jobs Cons: short jobs can stuck behind the long ones Round-Robin (RR) FCFS with preemption. Cycle after a fixed time quantum Pros: better interactivity (low average scheduling latency) Cons: performance is dependent on the quantum size Shortest Job First (SJF)/ Shorted Remaining Time First (SRTF) Shorted job (or shortest remaining job) first Pros: optimal average waiting time Cons: you need to know the future, long jobs can be starved by short jobs 1
50

Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Jun 21, 2018

Download

Documents

phungnguyet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Recap

• First-Come, First-Served (FCFS)– Run to completion in order of arrival

– Pros: simple, low overhead, good for batch jobs

– Cons: short jobs can stuck behind the long ones

• Round-Robin (RR)– FCFS with preemption. Cycle after a fixed time quantum

– Pros: better interactivity (low average scheduling latency)

– Cons: performance is dependent on the quantum size

• Shortest Job First (SJF)/ Shorted Remaining Time First (SRTF)– Shorted job (or shortest remaining job) first

– Pros: optimal average waiting time

– Cons: you need to know the future, long jobs can be starved by short jobs

1

Page 2: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example

• Task A and B

– CPU bound, run an hour

• Task C

– I/O bound, repeat(1ms CPU, 9ms disk I/O)

• FCFS?

– If A or B is scheduled first, C can begins an hour later

• RR and SRTF?

2

Compute I/O I/O

A or B C

Page 3: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example Timeline

3

C A B

RR with 100ms time quantum

C

A

RR with 1ms time quantum

B … A B

I/O

I/O

C A B A B … C A B …

I/O

C

SRTF

A

I/O

C A C A …

I/O

Page 4: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Discussion

• Comparison between FCFS, SRTF(SJF), and RR

– What to choose for smallest average waiting time?

• SRTF (SFJ) is the optimal

– What to choose for better interactivity?

• RR with small time quantum (or SRTF)

– What to choose to minimize scheduling overhead?

• FCFS

4

Page 5: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Agenda

• Multi-level queue scheduling

• Fair scheduling

• Real-time scheduling

• Multicore scheduling

5

Page 6: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Multiple Scheduling Goals

• Optimize for interactive applications

– Round-robin

• Optimize for batch jobs

– FCFS

• Can we do both?

6

Page 7: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Multi-level Queue

• Ready queue is partitioned into separate queues

– Foreground: interactive jobs

– Background: batch jobs

• Each queue has its own scheduling algorithm

– Foreground : RR

– Background: FCFS

• Between the queue?

7

Page 8: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Multi-level Queue Scheduling

• Scheduling between the queues

– Fixed priority

• Foreground first; schedule background only when no tasks in foreground

• Possible starvation

– Time slicing

• Assign fraction of CPU time for each queue

• 80% time for foreground; 20% time for background

8

Page 9: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Multi-level Feedback Queue

• Each queue has a priority

• Tasks migrate across queues

– Each job starts at the highest priority queue

– If it uses up an entire quantum, drop one-level

– If it finishes early, move up one-level (or stay at top)

• Benefits

– Interactive jobs stayat high priority queues

– Batch jobs will be at the low priority queue

– Automatically!

9

Page 10: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 0

Time

A B C

0 2 5 9

10

Page 11: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 1

Time

A

B C

0

0 3 7

A

1

11

Page 12: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 2

Time

A B

C

0

0 4

3

A

1

B

12

Page 13: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 3

Time

A B C

0 63

A

1

B C

13

Page 14: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 3

Time

A B C

0 63

A

1

B C

Suppose A is blocked on I/O

14

Page 15: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 3

Time

B C

52

A B C

Suppose A is blocked on I/O

0

15

Page 16: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 5

Time

A

B

C

0

3

A

1

B C

A is returned from I/O

0

16

Page 17: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 6

TimeAB

C

3

A B C

0

17

Page 18: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 8

TimeAB

C

3

A B C

2

C

18

Page 19: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Example of Multilevel Feedback Queues

Priority 0 (time slice = 1):

Priority 1 (time slice = 2):

Priority 2 (time slice = 4):

time = 9

TimeAB CA B C C

19

Page 20: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Recap: Multi-level Queue

• Ready queue is partitioned into separate queues

– Foreground: interactive jobs

– Background: batch jobs

• Each queue has its own scheduling algorithm

– Foreground : RR

– Background: FCFS

• Between the queue?

20

Page 21: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Recap: Multi-level Feedback Queue

• Each queue has a priority

• Tasks migrate across queues

– Each job starts at the highest priority queue

– If it uses up an entire quantum, drop one-level

– If it finishes early, move up one-level (or stay at top)

• Benefits

– Interactive jobs stayat high priority queues

– Batch jobs will be at the low priority queue

– Automatically!

21

Page 22: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Completely Fair Scheduler (CFS)

22

• Linux default scheduler, focusing on fairness

• Each task owns a fraction of CPU time share

– E.g.,) A=10%, B=30%, C=60%

• Scheduling algorithm

– Each task maintains its virtual runtime

• Virtual runtime = executed time (x 1 / weight)

– Pick the task with the smallest virtual runtime

• Tasks are sorted according to their virtual times

Page 23: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

CFS Example

• Tasks are sorted according to their virtual times

23

5

6

8

10

Scheduled the “neediest” task

Page 24: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

CFS Example

• Tasks are sorted according to their virtual times

24

9

6

8

10

On a next scheduler eventre-sort the list

But list is inefficient.

Page 25: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Red-black Tree

– Self-balancing binary search tree

– Insert: O(log N), Remove: O(1)

25

Figure source: M. Tim Jones, “Inside the Linux 2.6 Completely Fair Scheduler”, IBM developerWorks

Page 26: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Weighed Fair Sharing: Example

Weights: gcc = 2/3, bigsim=1/3X-axis: mcu (tick), Y-axis: virtual time

Fair in the long run

26

Page 27: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Some Edge Cases

• How to set the virtual time of a new task?

– Can’t set as zero. Why?

– System virtual time (SVT)

• The minimum virtual time among all active tasks

• cfs_rq->min_vruntime

– The new task can “catch-up” tasks by setting its virtual time with SVT

27

Page 28: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Weighed Fair Sharing: Example 2

28

Weights: gcc = 2/3, bigsim=1/3X-axis: mcu (tick), Y-axis: virtual time

gcc slept 15 mcu

Page 29: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Agenda

• Multi-level queue scheduling

• Fair scheduling

• Real-time scheduling

• Multicore scheduling

29

Page 30: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Real-Time Systems• The correctness of the system depends not only on

the logical result of the computation but also on the time at which the results are produced.

• A correct value at the wrong time is a fault.

• Processes attempt to control or react to events that take place in the outside world

• These events occur in “real time” and tasks must be able to keep up with them

• Processes are associated with timing constraints (deadlines)

30

Page 31: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Real-Time Spectrum

ECE493T9 S. Fischmeister 31

Userinterface

Computer simulation

Internetvideo, audio

Telecommunication

Flightcontrol

Soft RT Hard RTNo RT

Page 32: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Real-Time Scheduling

• Goal: meet the deadlines of important tasks

– Soft deadline: game, video decoding, …

– Hard deadline: engine control, anti-lock break (ABS)

• 100 ECUs (processors) in BMW i3 [*]

• Priority scheduling

– A high priority task preempts lower priority tasks

– Static priority scheduling

– Dynamic priority scheduling

32[*] Robert Leibinger, “Software Architectures for Advanced Driver Assistance Systems (ADAS)”, OSPERT’15 keynote

Page 33: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Periodic Task Model

33

ai0=0 ai1=10 ai2=20

t0 10 20

di0=8 di1=18

Ci=3

Di=8

Ti=10

response time for job#1: 6

τi

τi0 τi1

Page 34: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Rate Monotonic (RM)

• Priority is assigned based on periods

– Shorter period -> higher priority

– Longer period -> lower priority

• Optimal static-priority scheduling

34

(3,1)

(4,1)

Page 35: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Earliest Deadline First (EDF)

• Priority is assigned based on deadline

– Shorter deadline higher priority

– Longer deadline lower priority

• Optimal dynamic priority scheduling

35

(3,1)

(4,1)

(5,2)

Page 36: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Sample Problem

• U: utilization

• P: period

• C: compute time

36

C P U

Task t1: 20 100 0.200

Task t2: 40 150 0.267

Task t3: 100 350 0.286

Page 37: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

37

Sample Problem: draw the schedule by using RM and EDF

t1

t2

t3

t1

t2

t3

t1

t2

t3

(20, 100)

RM

(40, 150)

(100, 350)

(40, 100)

RM

(40, 150)

(110, 350)

(40, 100)

EDF

(40, 150)

(110, 350)

Page 38: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

38

Sample Problem: draw the schedule by using RM and EDF

t1

t2

t3

t1

t2

t3

t1

t2

t3

(20, 100)

RM

(40, 150)

(100, 350)

(40, 100)

RM

(40, 150)

(110, 350)

(40, 100)

EDF

(40, 150)

(110, 350)

deadline miss!

Page 39: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Linux Scheduling Framework

CFS(sched/fair.c)

Real-time(sched/rt.c)

• First, schedule real-time tasks

– Real-time schedulers: (1) Priority based, (2) deadline based

• Then schedule normal tasks

– Completely Fair Scheduler (CFS)

• Two-level queue scheduling

– Between queues?

39

Page 40: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Linux Scheduling Framework

CFS(sched/fair.c)

Real-time(sched/rt.c)

SCHED_OTHER

SCHED_BATCH SCHED_RR

SCHED_FIFO

• Completely Fair Scheduler (CFS)• SCHED_OTHER, SCHED_BATCH

• Real-time Schedulers• SCHED_DEADLINE, SCHED_FIFO, SCHED_RR

SCHED_DEADLINE

Page 41: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Real-Time Schedulers in Linux

• SCHED_FIFO

– Static priority scheduler

• SCHED_RR

– Same as SCHED_FIFO except using RR for tasks with the same priority

• SCHED_DEADLINE

– EDF scheduler

– Recently merged in the Linux mainline (v3.14)

41

Page 42: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Multiprocessor Scheduling

• How many scheduling queues are needed?

– Global shared queue: all tasks are placed in a single shared queue (global scheduling)

– Per-core queue: each core has its own scheduling queue (partitioned scheduling)

42

Core1 Core2 Core3 Core4

DRAM

Page 43: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Global Scheduling

43

CPU1 CPU2 CPU3 CPU4HW

OS RunQueue

tasks

Page 44: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Partitioned Scheduling

• Linux’s basic design. Why?

44

CPU1 CPU2 CPU3 CPU4HW

OS RunQueue

tasks

RunQueue

tasks

RunQueue

tasks

RunQueue

tasks

Page 45: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Load Balancing

• Undesirable situation

– Core 1’s queue: 40 tasks

– Core 2’s queue: 0 task

• Load balancing

– Tries to balance load across all cores.

– Not so simple, why?

• Migration overhead: cache warmup

45

Page 46: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Load Balancing

• More considerations

– What if certain cores are more powerful than others?

• E.g., ARM bigLITTLE (4 big cores, 4 small cores)

– What if certain cores share caches while others don’t?

– Which tasks to migrate?

• Some tasks may compete for limited shared resources

46

Core1 Core2 Core3 Core4

LLC LLC

Page 47: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Summary

• Multi-level queue scheduling

– Each queue has its own scheduler

– Scheduling between the queues

• Fair scheduling (CFS)

– Fairly allocate CPU time across all tasks

– Pick the task with the smallest virtual time

– Guarantee fairness and bounded response time

• Real-time scheduling

– Static priority scheduling

– Dynamic priority scheduling

47

Page 48: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Summary

• Multicore scheduling

– Global queue vs. per-core queue

• Mostly per-core queue due to scalability

– Load balancing

• Balance load across all cores

• Is complicated due to – Migration overhead

– Shared hardware resources (cache, dram, etc)

– Core architecture heterogeneity (big cores vs. small cores)

– …

48

Page 49: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Summary

• First-Come, First-Served (FCFS)– Run to completion in order of arrival

– Pros: simple, low overhead, good for batch jobs

– Cons: short jobs can stuck behind the long ones

• Round-Robin (RR)– FCFS with preemption. Cycle after a fixed time quantum

– Pros: better interactivity (low average scheduling latency)

– Cons: performance is dependent on the quantum size

• Shortest Job First (SJF)/ Shorted Remaining Time First (SRTF)– Shorted job (or shortest remaining job) first

– Pros: optimal average waiting time

– Cons: you need to know the future, long jobs can be starved by short jobs

49

Page 50: Lecture 2: Operating System Structure - ittc.ku.eduheechul/courses/eecs678/S18/slides/W8.Scheduling.pdfMulti-level Feedback Queue • Each queue has a priority ... Example of Multilevel

Acknowledgements

• Some slides are adopted from the notes of

– Dr. Kulkarni at KU

– Dr. Pellizzoni at Univ. of Waterloo

– The book authors

50