Upload
vutram
View
225
Download
0
Embed Size (px)
Citation preview
1
Silberschatz, Galvin and Gagne ©20026.1Operating System Concepts
Chapter 6: CPU Scheduling
Basic ConceptsScheduling Criteria Scheduling AlgorithmsMultiple-Processor SchedulingReal-Time SchedulingAlgorithm Evaluation
Silberschatz, Galvin and Gagne ©20026.2Operating System Concepts
Basic Concepts
Maximum CPU utilization obtained with multiprogramming
CPU–I/O Burst CycleProcess execution consists of a cycle of CPU execution and I/O wait
CPU burst distribution ?
Silberschatz, Galvin and Gagne ©20026.3Operating System Concepts
Alternating Sequence of CPU And I/O Bursts
2
Silberschatz, Galvin and Gagne ©20026.4Operating System Concepts
Histogram of CPU-burst Times
Silberschatz, Galvin and Gagne ©20026.5Operating System Concepts
CPU Scheduler
Selects a ready process to run on CPUConsider process state changes:
1. from running to waiting state2. from running to ready state3. from waiting to ready4. terminate
Preemption ?NON-
Silberschatz, Galvin and Gagne ©20026.6Operating System Concepts
Dispatcher
gives control of the CPU to selected process, actions:
switching contextswitching to user modejumping to the proper location in the user program to restart that program
Dispatch latency:time it takes for the dispatcher to stop one process and start another running
3
Silberschatz, Galvin and Gagne ©20026.7Operating System Concepts
Scheduling Criteria
CPU utilization –keep the CPU as busy as possibleThroughput –# of processes that complete per time unitTurnaround time –amount of time to execute a processWaiting time –time a process has been waiting in the ready queueResponse time –time from request submission until the first response is
produced (time for output of response not counter)
Silberschatz, Galvin and Gagne ©20026.8Operating System Concepts
Scheduling Algorithms
First-come first-serveShorted job firstPriority basedRound robin
Silberschatz, Galvin and Gagne ©20026.9Operating System Concepts
First-Come, First-Served (FCFS) Scheduling
Process Burst TimeP1 24P2 3P3 3
Processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is:
Waiting time for P1 = 0; P2 = 24; P3 = 27Average waiting time: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 300
4
Silberschatz, Galvin and Gagne ©20026.10Operating System Concepts
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the orderP2 , P3 , P1
The Gantt chart for the schedule is:
Waiting time for P1 = 6; P2 = 0; P3 = 3Average waiting time: (6 + 0 + 3)/3 = 3Much better than previous caseConvoy effect short process behind long process
P1P3P2
63 300
Silberschatz, Galvin and Gagne ©20026.11Operating System Concepts
Shortest-Job-First (SJR) Scheduling
Determine processes’ CPU burst lengthSchedule the process with the shortest lengthTwo schemes:
non-preemptiverunning process completes its CPU burst.
preemptive new process arrives with CPU burst length less than remaining time of current process preemptsName: Shortest-Remaining-Time-First (SRTF)
SJF is optimalminimum average waiting time for a given set of processes
Silberschatz, Galvin and Gagne ©20026.12Operating System Concepts
Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
SJF (non-preemptive)
Average waiting time = (0 + 6 + 3 + 7)/4 - 4
Example of Non-Preemptive SJF
P1 P3 P2
73 160
P4
8 12
5
Silberschatz, Galvin and Gagne ©20026.13Operating System Concepts
Example of Preemptive SJF
Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
SJF (preemptive)
Average waiting time = (9 + 1 + 0 +2)/4 - 3
P1 P3P2
42 110
P4
5 7
P2 P1
16
Silberschatz, Galvin and Gagne ©20026.14Operating System Concepts
Determining Length of Next CPU Burst
Can only estimate the lengthCan be done by using the length of previous CPU bursts, using exponential averaging
:Define 4.10 , 3.
burst CPU next the for value predicted 2.burst CPU of lenght actual 1.
≤≤=
=
+
αατ 1n
thn nt
( ) nnn t ταατ −+=+ 1 1
Silberschatz, Galvin and Gagne ©20026.15Operating System Concepts
Prediction of the Length of the Next CPU Burst
6
Silberschatz, Galvin and Gagne ©20026.16Operating System Concepts
Examples of Exponential Averaging
α =0τn+1 = τn Recent history does not count
α =1τn+1 = tn Only the actual last CPU burst counts
If we expand the formula, we get:τn+1 = α tn+(1 - α) α tn -1 + …
+(1 - α )j α tn -1 + …+(1 - α )n=1 tn τ0
Since both α and (1 - α) are less than or equal to 1, each successive term has less weight
Silberschatz, Galvin and Gagne ©20026.17Operating System Concepts
Priority Scheduling
each process has a priority (integer) process with highest priority gets CPU(smallest integer ≡ highest priority)
preemptivenonpreemptive
SJF is a form of priority scheduling,priority is the predicted next CPU burst timeProblem ≡ Starvation
low priority processes may never execute
Solution ≡ Aging as time progresses increase the priority of the process
Silberschatz, Galvin and Gagne ©20026.18Operating System Concepts
Round Robin (RR)
Each process runs for quantum of CPU time,Time quantum: usually 10-100 milliseconds
After time has elapsed, process is preempted and added to the end of the ready queue
for n processes each gets 1/n of CPUin chunks of time quantum qno process waits more than (n-1)q time unitsperformance
q large ⇒ FIFOq small ⇒ q must be large with respect to context switch, otherwise overhead is too high
7
Silberschatz, Galvin and Gagne ©20026.19Operating System Concepts
Example of RR with Time Quantum = 20
Process Burst TimeP1 53P2 17P3 68P4 24
The Gantt chart is:
Typically, higher average turnaround than SJF, but better response
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Silberschatz, Galvin and Gagne ©20026.20Operating System Concepts
Time Quantum and Context Switch Time
Silberschatz, Galvin and Gagne ©20026.21Operating System Concepts
Turnaround Time Varies With The Time Quantum
8
Silberschatz, Galvin and Gagne ©20026.22Operating System Concepts
Multilevel Queue
Ready queue is partitioned into separate queues:foreground (interactive)background (batch)Each queue has its own scheduling algorithm, foreground – RRbackground – FCFSScheduling must be done between the queues
Fixed priority scheduling; (i.e., serve all from foreground then from background). Possibility of starvation.Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes
80% to foreground in RR20% to background in FCFS
Silberschatz, Galvin and Gagne ©20026.23Operating System Concepts
Multilevel Queue Scheduling
Silberschatz, Galvin and Gagne ©20026.24Operating System Concepts
Multilevel Feedback Queue
A process can move between the various queuesaging can be implemented this way
Multilevel-feedback-queue scheduler defined by the following parameters:
number of queuesscheduling algorithms for each queuemethod to determine when to upgrade a processmethod to determine when to demote a processmethod to determine which queue a process will enter when that process needs service
9
Silberschatz, Galvin and Gagne ©20026.25Operating System Concepts
Example of Multilevel Feedback Queue
Three queues: Q0 – time quantum 8 millisecondsQ1 – time quantum 16 millisecondsQ2 – FCFS
SchedulingA new job enters queue Q0 which is served FCFS When it gains CPU, job receives 8 millisecondsIf it does not finish in 8 milliseconds,
job is moved to queue Q1At Q1 job is again served FCFS and receives 16 additional millisecondsIf it still does not complete, it is preempted andmoved to queue Q2
Silberschatz, Galvin and Gagne ©20026.26Operating System Concepts
Multilevel Feedback Queues
Silberschatz, Galvin and Gagne ©20026.27Operating System Concepts
Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs are availableHomogeneous processors within a multiprocessorLoad sharingAsymmetric multiprocessing
only one processor accesses the system data structures, alleviating the need for data sharing
10
Silberschatz, Galvin and Gagne ©20026.28Operating System Concepts
Real-Time Scheduling
Hard real-time systemsrequired to complete a critical task within a guaranteed amount of time
Soft real-time computingrequires that critical processes receive priority over less fortunate onesMore effective with kernel preemption
Kernel data structures at riskConflict resolution
– Preemption points– Priority inheritance
Silberschatz, Galvin and Gagne ©20026.29Operating System Concepts
Dispatch Latency
Let competing processes finish kernel data access
Silberschatz, Galvin and Gagne ©20026.30Operating System Concepts
Algorithm Evaluation
Deterministic modelingtakes a particular predetermined workload and defines the performance of each algorithm for that workload
Queuing modelsImplementation
11
Silberschatz, Galvin and Gagne ©20026.31Operating System Concepts
Evaluation of CPU Schedulers by Simulation
Silberschatz, Galvin and Gagne ©20026.32Operating System Concepts
Solaris 2 Scheduling
Maypreempt kernel
RR: TimesliceVs.
priority
PreemptivePriorityBased
Silberschatz, Galvin and Gagne ©20026.33Operating System Concepts
Windows XP Priorities
• Priority is adjusted • after each run: down• up after return from wait, more for GUI wait
• active window gets priority boost• foreground process get larger time quantum
classgrade
12
Silberschatz, Galvin and Gagne ©20026.34Operating System Concepts
Linux
Time-sharing methodPriority-based preemptive scheduling
Credit-based algorithmCredits = credits / 2 + priority
Process with highest credit runsEach time slice consumes 1 creditProcess runs until block, or credits exhaustedIf no process has credits, credits are recomputed for all
Gives preference to processes doing I/O