CS 134: Operating Systems
Scheduling
1 / 52
CS 134: Operating Systems
Scheduling
2013-05-17
CS34
CS 134: Operating Systems Scheduling 1 / 52 Scheduling Process - - PowerPoint PPT Presentation
CS34 2013-05-17 CS 134: Operating Systems Scheduling CS 134: Operating Systems Scheduling 1 / 52 Scheduling Process Switching CS34 Process Switching 2013-05-17 Scheduling Class Exercise When can/do we switch processes (or threads)?
1 / 52
CS 134: Operating Systems
Scheduling
CS34
Scheduling
2 / 52
Process Switching Class Exercise
When can/do we switch processes (or threads)?
CS34 Scheduling Process Switching
Scheduling
◮ Clock ◮ I/O interrupt ◮ Page fault
◮ Trace ◮ Protection fault
◮ I/O request ◮ Wait for child ◮ etc. 3 / 52
Process Switching
We could switch processes any time the OS has control, i.e.,
◮ Interrupt occurs ◮ Clock ◮ I/O interrupt ◮ Page fault ◮ Trap occurs ◮ Trace ◮ Protection fault ◮ System call ◮ I/O request ◮ Wait for child ◮ etc.
CS34 Scheduling Process Switching
Scheduling
4 / 52
Process Switch Overheads
To switch processes, system must
◮ Save the state of the old process ◮ Load the saved state for the new process
CS34 Scheduling Process Switch Overheads
Scheduling
5 / 52
The Essence of Scheduling
Scheduler manages some of these state transitions: Which ones?
CS34 Scheduling The Essence of Scheduling
Scheduling
6 / 52
Scheduling Goals
Many different scheduling algorithms
◮ Tradeoffs ◮ Different goals ⇒ Different choices
What are some possible goals for a scheduler?
◮ What could we try to optimize?
CS34 Scheduling Scheduling Goals
Scheduling
7 / 52
Scheduling Exercise
Consider the following set of running processes Arrival Burst Priority Process Time Time (if applicable) A 10 3 B 1 1 C 2 3 D 1 4 E 5 2
CS34 Scheduling Scheduling Exercise
Scheduling
8 / 52
Example Answer
CS34 Scheduling Example Answer
Scheduling
9 / 52
Example Answer
CS34 Scheduling Example Answer
Scheduling
10 / 52
First Come, First Served
CS34 Scheduling First Come, First Served
Scheduling
11 / 52
Shortest Burst First
CS34 Scheduling Shortest Burst First
Scheduling
12 / 52
Nonpreemptive Priority Class Question
Should low-priority jobs starve?
CS34 Scheduling Nonpreemptive Priority
Scheduling
13 / 52
Round Robin
CS34 Scheduling Round Robin
Scheduling
14 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 Dynamic Compensation Total 32 Time = 0
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
15 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 Dynamic Compensation Total 32 Time = 0
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
16 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 Dynamic Compensation Total 32 Time = 0
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
17 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 Dynamic Compensation Total 32 2 Time = 1
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
18 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 Dynamic
Compensation Total 16 2 2 Time = 2
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
19 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 Dynamic
Compensation 1 1 1 Total 16 3 3 1 Time = 2
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
20 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
Compensation 1 1 1 Total 16 3 3 1 8 Time = 3
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
21 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
Compensation 1 1 1 Total 3 3 1 8 Time = 4
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
22 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
Compensation 1 2 2 2 Total 1 4 4 2 8 Time = 4
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
23 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 Compensation 1 2 2 2 Total 1 4 4 2 24 Time = 5
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
24 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 Compensation 2 3 3 Total 2 2 5 3 24 Time = 5
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
25 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 16 Compensation 2 3 3 Total 2 18 5 3 24 Time = 6
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
26 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 16 Compensation 3 4 Total 3 18 2 4 24 Time = 6
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
27 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 16 16 Compensation 3 4 Total 3 18 18 4 24 Time = 7
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
28 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
16 16 16 Compensation 4 5 Total 4 18 18 5 24 Time = 7
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
29 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16 16 Compensation 4 5 Total 4 34 18 5 24 Time = 8
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
30 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16 16 Compensation 5 Total 5 34 18 24 Time = 8
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
31 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 5 Total 5 34 18
24 Time = 10
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
32 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total 34 18
24 Time = 10
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
33 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 12
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
34 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 12
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
35 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 14
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
36 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 14
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
37 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 16
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
38 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 16
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
39 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 1 Total
34 18
24 Time = 18
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
40 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
32 16
16 Compensation 2 1 1 Total
34 19
24 Time = 18
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
41 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 16
16 Compensation 2 1 1 Total
50 19
24 Time = 19
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
42 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 16
16 Compensation 3 2 2 Total
50 20
24 Time = 19
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
43 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 16
32 Compensation 3 2 2 Total
50 20
24 Time = 20
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
44 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 16
32 Compensation 4 3 Total
50 18
24 Time = 20
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
45 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 32
32 Compensation 4 3 Total
50 34
24 Time = 21
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
46 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 32
32 Compensation 4 Total
50 34
24 Time = 21
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
47 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 32
32 Compensation 4 Total
50 34
24 Time = 23
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
48 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 32
32 Compensation 1 Total
50 34
24 Time = 23
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
49 / 52
OS/161 MLF Scheduler
Priority A B C D E Base 32 2 2 8 Dynamic
48 32
32 Compensation 1 Total
50 34
24 Time = 25
CS34 Scheduling OS/161 MLF Scheduler
Scheduling
50 / 52
Priority Inversion
What happens when a low-priority thread holds a lock that a high priority thread wants?
CS34 Scheduling Priority Inversion
Scheduling
51 / 52
Real-Time Scheduling
Consider two applications
◮ Video playback ◮ Controlling cancer treatment X-ray
How can we deal with their needs?
CS34 Scheduling Real-Time Scheduling
Scheduling
52 / 52
Class Exercise
Should we preempt kernel code, or wait until we hit user code?
CS34 Scheduling Class Exercise