Upload
verity-murphy
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Chapter 6a: CPU Scheduling
6.2 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Chapter 6: CPU Scheduling
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
6.3 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Objectives
Introduce CPU scheduling Basis for multiprogrammed operating systems
Describe various CPU-scheduling algorithms
Discuss evaluation criteria for selecting a CPU-scheduling algorithm
6.4 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Basic Concepts
Maximum CPU utilization with multiprogramming
CPU–I/O Burst Cycle Process execution = cycles of
CPU execution and I/O waits
CPU burst followed by I/O burst
CPU bursts are main concern
6.5 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Histogram of CPU-burst Times
6.6 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
CPU Scheduler
Short-term scheduler selects among processes in ready queue, allocates CPU
Queue ordered in various ways Depends on algorithm
6.7 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
CPU Scheduler
Scheduling decisions may take place when process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
Terminates
1 and 4 are nonpreemptive Process voluntarily yields CPU
2 and 3 are preemptive Process preempted; CPU reallocated
6.8 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Dispatcher
Dispatcher gives control of CPU to process selected by short-term scheduler; this involves: Switching context
Switching to user mode
Jumping to proper location in user program to restart
Dispatch latency – time dispatcher takes to stop one process and start another running
6.9 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Chapter 6: CPU Scheduling
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
6.10 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Scheduling Criteria
CPU utilization – keep CPU busy as possible
Throughput – # of processes that complete execution per time unit
Turnaround time – amount of time to execute a particular process
6.11 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Scheduling Criteria
Waiting time –time process has been waiting in ready queue
Response time – amount of time from when request submitted until first response is produced Does not include device output
6.12 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Scheduling Algorithm Optimization Criteria
Maximize CPU utilization
Maximize throughput
Minimize turnaround time
Minimize waiting time
Minimize response time
6.13 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Chapter 6: CPU Scheduling
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
6.14 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
First- Come, First-Served (FCFS) Scheduling
Simplest algorithm
Process that requests CPU first is allocate CPU first
Easily manage by FIFO queue Process enters ready queue at tail CPU allocated to process at head Running process removed from queue Process runs to completion
6.15 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
First- Come, First-Served (FCFS) Scheduling
Process Burst Time
P1 24
P2 3
P3 3
Suppose processes arrive in order: P1 , P2 , P3
Gantt Chart for schedule:
Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17
P P P1 2 3
0 24 3027
6.16 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
FCFS Scheduling (Cont.)
Suppose processes arrive in order:
P2 , P3 , P1
Gantt chart schedule:
Waiting time for P1 = 6; P2 = 0; P3 = 3
Average waiting time: (6 + 0 + 3)/3 = 3
Much better than previous case
P 1
0 3 6 30
P 2 P 3
6.17 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
FCFS Scheduling (Cont.)
Convoy effect - short process behind long process E.g., one CPU-bound and many I/O-bound processes
All I/O bound processes wait in ready queue for CPU-bound to give up CPU
Lowers CPU and device utilization Compared to if shorter processes were allowed to go first
6.18 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Shortest-Job-First (SJF) Scheduling
Each process knows length of next CPU burst CPU available => schedule process with smallest burst
Ties scheduled in FCFS
SJF is optimal – gives minimum average waiting time Difficulty: knowing length of next CPU request
Could ask user
Could make mathematical predictions E.g., .1 1 nnn t
6.19 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of SJF
ProcessAril Time Burst Time
P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3
Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
P 3
0 3 24
P 4 P 1
169
P 2
6.20 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of Shortest-remaining-time-first
Add varying arrival times and preemption...
ProcessAarri Arrival TimeTBurst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec
P 4
0 1 26
P 1 P 2
10
P 3P 1
5 17
6.21 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Priority Scheduling
Priority number associated with each process SJF => priority scheduling algorithm
Priority = inverse of next CPU burst time
CPU allocated to process with highest priority E.g., smallest number = highest priority
Can be Preemptive or Nonpreemptive
6.22 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Priority Scheduling
Priority Scheduling may result in starvation Low priority processes may never execute
Aging is possible solution Process’ priority increases with time
6.23 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of Priority Scheduling
ProcessAarri Burst TimeT Priority
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
Average waiting time = 8.2 msec
6.24 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Round Robin (RR)
Each process gets unit of CPU time (time quantum q), usually 10-100 milliseconds After time elapsed, process is preempted, added to end
of ready queue
n processes in ready queue, time quantum q, Each process gets 1/n of CPU time
CPU time in chunks of at most q time units
No process waits more than (n-1)q time units
6.25 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Round Robin (RR)
Timer interrupts every quantum to schedule next process If process finishes before time quantum, next process starts
If process not finished, added to tail of queue
Performance q large FIFO
q small q must be large with respect to context switch, otherwise overhead is too high
6.26 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of RR with Time Quantum = 4
Time quantum = 4 ms
Process Burst Time
P1 24
P2 3
P3 3
Average wait time: 5.66 ms (6 + 4 + 7) / 3 = 17 / 3 = 5.66
P P P1 1 1
0 18 3026144 7 10 22
P 2 P 3 P 1 P 1 P 1
6.27 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of RR with Time Quantum = 4
Typically, higher average turnaround than SJF But better response time
q should be large compared to context switch time q usually 10ms to 100ms, context switch < 10 µs
6.28 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Time Quantum and Context Switch Time
6.29 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Turnaround Time Varies With The Time Quantum
80% of CPU bursts should be shorter than q
6.30 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Multilevel Queue
Ready queue partitioned into separate queues, e.g., foreground (interactive)
background (batch)
Processes cannot switch between queues Queue assignment is permanent
Each queue has own scheduling algorithm, e.g., foreground – RR
background – FCFS
6.31 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Multilevel Queue: Scheduling b/t Qs
Fixed priority scheduling Serve all foreground then background
Possibility of starvation
Time slice Each queue gets certain amount of CPU time
Time scheduled amongst processes, e.g., 80% to foreground in RR
20% to background in FCFS
6.32 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Multilevel Queue Scheduling
6.33 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Multilevel Feedback Queue
Processes can move between various queues Aging implemented this way
Multilevel-feedback-queue scheduler defined by: Number of queues
Scheduling algorithms for each queue
Method to determine when to upgrade a process
Method to determine when to demote a process
Method to determine which queue a process will enter
6.34 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of Multilevel Feedback Queue
Three queues Q0 – RR; q = 8 ms
Q1 – RR; 1 = 16 ms
Q2 – FCFS
6.35 Silberschatz, Galvin and Gagne ©2013Operating System Concepts Essentials – 2nd Edition
Example of Multilevel Feedback Queue
New job enters Q0 , order is FCFS If process doesn’t finish in
8 ms, moved to Q1
Q1 order is FCFS
If job does not finish in 16 ms, moved to Q2
If no jobs in Q0 and Q1, jobs in Q2 processed FCFS