SlideShare a Scribd company logo
1 of 33
Chapter 6: CPU Scheduling 
 Basic Concepts 
 Scheduling Criteria 
 Scheduling Algorithms 
 Multiple-Processor Scheduling 
 Real-Time Scheduling 
 Algorithm Evaluation 
Silberschatz, Galvin 6.1 and Gagne Ó2002 Operating System
Basic Concepts 
 Maximum CPU utilization obtained with 
multiprogramming 
 CPU–I/O Burst Cycle – Process execution consists of a 
cycle of CPU execution and I/O wait. 
 CPU burst distribution 
Silberschatz, Galvin 6.2 and Gagne Ó2002 Operating System
Alternating Sequence of CPU And I/O 
Bursts 
Silberschatz, Galvin 6.3 and Gagne Ó2002 Operating System
Histogram of CPU-burst Times 
Silberschatz, Galvin 6.4 and Gagne Ó2002 Operating System
CPU Scheduler 
 Selects from among the processes in memory that are 
ready to execute, and allocates the CPU to one of them. 
 CPU scheduling decisions may take place when a 
process: 
1. Switches from running to waiting state. 
2. Switches from running to ready state. 
3. Switches from waiting to ready. 
4. Terminates. 
 Scheduling under 1 and 4 is nonpreemptive. 
 All other scheduling is preemptive. 
Silberschatz, Galvin 6.5 and Gagne Ó2002 Operating System
Dispatcher 
 Dispatcher module gives control of the CPU to the 
process selected by the short-term scheduler; this 
involves: 
 switching context 
 switching to user mode 
 jumping 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. 
Silberschatz, Galvin 6.6 and Gagne Ó2002 Operating System
Scheduling Criteria 
 CPU utilization – keep the CPU as busy as possible 
 Throughput – # of processes that complete their 
execution per time unit 
 Turnaround time – amount of time to execute a particular 
process 
 Waiting time – amount of time a process has been waiting 
in the ready queue 
 Response time – amount of time it takes from when a 
request was submitted until the first response is 
produced, not output (for time-sharing environment) 
Silberschatz, Galvin 6.7 and Gagne Ó2002 Operating System
Optimization Criteria 
 Max CPU utilization 
 Max throughput 
 Min turnaround time 
 Min waiting time 
 Min response time 
Silberschatz, Galvin 6.8 and Gagne Ó2002 Operating System
First-Come, First-Served (FCFS) 
Scheduling 
Process Burst Time 
P1 24 
P2 3 
P3 3 
 Suppose that the processes arrive in the order: P1 , P2 , P3 
The Gantt Chart for the schedule is: 
P1 P2 P3 
0 24 27 30 
 Waiting time for P1 = 0; P2 = 24; P3 = 27 
 Average waiting time: (0 + 24 + 27)/3 = 17 
Silberschatz, Galvin 6.9 and Gagne Ó2002 Operating System
FCFS Scheduling (Cont.) 
Suppose that the processes arrive in the order 
P2 , P3 , P1 . 
 The Gantt chart for the schedule is: 
P1 P3 P2 
0 3 6 30 
 Waiting time for P1 = 6;P2 = 0; P3 = 3 
 Average waiting time: (6 + 0 + 3)/3 = 3 
 Much better than previous case. 
 Convoy effect short process behind long process 
Silberschatz, Galvin 6.10 and Gagne Ó2002 Operating System
Shortest-Job-First (SJR) 
Scheduling 
 Associate with each process the length of its next CPU 
burst. Use these lengths to schedule the process with the 
shortest time. 
 Two schemes: 
 nonpreemptive – once CPU given to the process it cannot 
be preempted until completes its CPU burst. 
 preemptive – if a new process arrives with CPU burst length 
less than remaining time of current executing process, 
preempt. This scheme is know as the 
Shortest-Remaining-Time-First (SRTF). 
 SJF is optimal – gives minimum average waiting time for 
a given set of processes. 
Silberschatz, Galvin 6.11 and Gagne Ó2002 Operating System
Example of Non-Preemptive SJF 
Process Arrival Time Burst Time 
P1 0.0 7 
P2 2.0 4 
P3 4.0 1 
P4 5.0 4 
 SJF (non-preemptive) 
P1 P3 P2 
P4 
0 3 7 8 12 
16 
 Average waiting time = (0 + 6 + 3 + 7)/4 - 4 
Silberschatz, Galvin 6.12 and Gagne Ó2002 Operating System
Example of Preemptive SJF 
Process Arrival Time Burst Time 
P1 0.0 7 
P2 2.0 4 
P3 4.0 1 
P4 5.0 4 
 SJF (preemptive) 
P1 P3 P2 
PPP2 4 
1 
0 2 4 5 7 
11 
 Average waiting time = (9 + 1 + 0 +2)/4 - 3 
16 
Silberschatz, Galvin 6.13 and Gagne Ó2002 Operating System
Determining Length of Next CPU 
Burst 
 Can only estimate the length. 
 Can be done by using the length of previous CPU bursts, 
using exponential averaging. 
th 
1. actual lenght of CPU burst 
tn n 
= 
+ 
a a 
2. = 
predicted value for the next CPU burst 
t n 1 
3. , 0 £ £ 
1 
4. Define : 
t n=1 =a tn + (1-a )t n . 
Silberschatz, Galvin 6.14 and Gagne Ó2002 Operating System
Prediction of the Length of the Next CPU 
Burst 
Silberschatz, Galvin 6.15 and Gagne Ó2002 Operating System
Examples of Exponential 
Averaging 
 a =0 
 tn+1 = tn 
 Recent history does not count. 
 a =1 
 tn+1 = tn 
 Only the actual last CPU burst counts. 
 If we expand the formula, we get: 
tn+1 = a tn+(1 - a) a tn -1 + … 
+(1 - a )j a tn -1 + … 
+(1 - a )n=1 tn t0 
 Since both a and (1 - a) are less than or equal to 1, each 
successive term has less weight than its predecessor. 
Silberschatz, Galvin 6.16 and Gagne Ó2002 Operating System
Priority Scheduling 
 A priority number (integer) is associated with each 
process 
 The CPU is allocated to the process with the highest 
priority (smallest integer º highest priority). 
 Preemptive 
 nonpreemptive 
 SJF is a priority scheduling where priority is the predicted 
next CPU burst time. 
 Problem º Starvation – low priority processes may never 
execute. 
 Solution º Aging – as time progresses increase the 
priority of the process. 
Silberschatz, Galvin 6.17 and Gagne Ó2002 Operating System
Round Robin (RR) 
 Each process gets a small unit of CPU time (time 
quantum), usually 10-100 milliseconds. After this time 
has elapsed, the process is preempted and added to the 
end of the ready queue. 
 If there are n processes in the ready queue and the time 
quantum is q, then each process gets 1/n of the CPU time 
in chunks of at most q time units at once. No process 
waits more than (n-1)q time units. 
 Performance 
 q large Þ FIFO 
 q small Þ q must be large with respect to context switch, 
otherwise overhead is too high. 
Silberschatz, Galvin 6.18 and Gagne Ó2002 Operating System
Example of RR with Time Quantum = 
20 
Process Burst Time 
P1 53 
P2 17 
P3 68 
P4 24 
 The Gantt chart is: 
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 
0 20 37 57 77 97 117 121 134 154 162 
 Typically, higher average turnaround than SJF, but better 
response. 
Silberschatz, Galvin 6.19 and Gagne Ó2002 Operating System
Time Quantum and Context Switch 
Time 
Silberschatz, Galvin 6.20 and Gagne Ó2002 Operating System
Turnaround Time Varies With The Time 
Quantum 
Silberschatz, Galvin 6.21 and Gagne Ó2002 Operating System
Multilevel Queue 
 Ready queue is partitioned into separate queues: 
foreground (interactive) 
background (batch) 
 Each queue has its own scheduling algorithm, 
foreground – RR 
background – FCFS 
 Scheduling 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; i.e., 80% to 
foreground in RR 
 20% to background in FCFS 
Silberschatz, Galvin 6.22 and Gagne Ó2002 Operating System
Multilevel Queue Scheduling 
Silberschatz, Galvin 6.23 and Gagne Ó2002 Operating System
Multilevel Feedback Queue 
 A process can move between the various queues; aging 
can be implemented this way. 
 Multilevel-feedback-queue scheduler defined by the 
following parameters: 
 number of queues 
 scheduling algorithms for each queue 
 method used to determine when to upgrade a process 
 method used to determine when to demote a process 
 method used to determine which queue a process will enter 
when that process needs service 
Silberschatz, Galvin 6.24 and Gagne Ó2002 Operating System
Example of Multilevel Feedback 
Queue 
 Three queues: 
 Q0 – time quantum 8 milliseconds 
 Q1 – time quantum 16 milliseconds 
 Q2 – FCFS 
 Scheduling 
 A new job enters queue Q0 which is served FCFS. When it 
gains CPU, job receives 8 milliseconds. If it does not finish 
in 8 milliseconds, job is moved to queue Q1. 
 At Q1 job is again served FCFS and receives 16 additional 
milliseconds. If it still does not complete, it is preempted 
and moved to queue Q2. 
Silberschatz, Galvin 6.25 and Gagne Ó2002 Operating System
Multilevel Feedback Queues 
Silberschatz, Galvin 6.26 and Gagne Ó2002 Operating System
Multiple-Processor Scheduling 
 CPU scheduling more complex when multiple CPUs are 
available. 
 Homogeneous processors within a multiprocessor. 
 Load sharing 
 Asymmetric multiprocessing – only one processor 
accesses the system data structures, alleviating the need 
for data sharing. 
Silberschatz, Galvin 6.27 and Gagne Ó2002 Operating System
Real-Time Scheduling 
 Hard real-time systems – required to complete a critical 
task within a guaranteed amount of time. 
 Soft real-time computing – requires that critical processes 
receive priority over less fortunate ones. 
Silberschatz, Galvin 6.28 and Gagne Ó2002 Operating System
Dispatch Latency 
Silberschatz, Galvin 6.29 and Gagne Ó2002 Operating System
Algorithm Evaluation 
 Deterministic modeling – takes a particular predetermined 
workload and defines the performance of each algorithm 
for that workload. 
 Queueing models 
 Implementation 
Silberschatz, Galvin 6.30 and Gagne Ó2002 Operating System
Evaluation of CPU Schedulers by 
Simulation 
Silberschatz, Galvin 6.31 and Gagne Ó2002 Operating System
Solaris 2 Scheduling 
Silberschatz, Galvin 6.32 and Gagne Ó2002 Operating System
Windows 2000 Priorities 
Silberschatz, Galvin 6.33 and Gagne Ó2002 Operating System

More Related Content

What's hot

Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )HimanshuSharma1389
 
Operating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzOperating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzGiulianoRanauro
 
Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )HimanshuSharma1389
 
Cpu scheduling (1)
Cpu scheduling (1)Cpu scheduling (1)
Cpu scheduling (1)Ayush Oberai
 
CPU scheduling ppt file
CPU scheduling ppt fileCPU scheduling ppt file
CPU scheduling ppt fileDwight Sabio
 
Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )HimanshuSharma1389
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzGiulianoRanauro
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating SystemsRitu Ranjan Shrivastwa
 
OperatingSystemChp3
OperatingSystemChp3OperatingSystemChp3
OperatingSystemChp3Dwight Sabio
 
Operating System 5
Operating System 5Operating System 5
Operating System 5tech2click
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationSyaiful Ahdan
 
Chapter 14 Computer Architecture
Chapter 14 Computer ArchitectureChapter 14 Computer Architecture
Chapter 14 Computer ArchitectureGiulianoRanauro
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationWayne Jones Jnr
 

What's hot (20)

5.CPU Scheduling
5.CPU Scheduling5.CPU Scheduling
5.CPU Scheduling
 
Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )Process scheduling : operating system ( Btech cse )
Process scheduling : operating system ( Btech cse )
 
Operating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatzOperating systems chapter 5 silberschatz
Operating systems chapter 5 silberschatz
 
Lecture#5
Lecture#5Lecture#5
Lecture#5
 
Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )Memory : operating system ( Btech cse )
Memory : operating system ( Btech cse )
 
Cpu scheduling (1)
Cpu scheduling (1)Cpu scheduling (1)
Cpu scheduling (1)
 
CPU scheduling ppt file
CPU scheduling ppt fileCPU scheduling ppt file
CPU scheduling ppt file
 
Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )Deadlock : operating system ( BTECH CSE )
Deadlock : operating system ( BTECH CSE )
 
Operating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatzOperating Systems Chapter 6 silberschatz
Operating Systems Chapter 6 silberschatz
 
Chapter4
Chapter4Chapter4
Chapter4
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
OperatingSystemChp3
OperatingSystemChp3OperatingSystemChp3
OperatingSystemChp3
 
Operating System 5
Operating System 5Operating System 5
Operating System 5
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Main memory-2 (ch8,os)
Main memory-2 (ch8,os)Main memory-2 (ch8,os)
Main memory-2 (ch8,os)
 
Chapter 14 Computer Architecture
Chapter 14 Computer ArchitectureChapter 14 Computer Architecture
Chapter 14 Computer Architecture
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
Ch2
Ch2Ch2
Ch2
 
Ch4 threads
Ch4 threadsCh4 threads
Ch4 threads
 
Cpu Scheduling Galvin
Cpu Scheduling GalvinCpu Scheduling Galvin
Cpu Scheduling Galvin
 

Viewers also liked

Operating systems mayo
Operating systems mayoOperating systems mayo
Operating systems mayochicaslsb2012
 
cpu sechduling
cpu sechduling cpu sechduling
cpu sechduling gopi7
 
CH. 4 Operating Systems and Utility Programs
CH. 4 Operating Systems and Utility ProgramsCH. 4 Operating Systems and Utility Programs
CH. 4 Operating Systems and Utility Programsmalik1972
 
Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)dsuyal1
 
Ch6: CPU Scheduling
Ch6: CPU SchedulingCh6: CPU Scheduling
Ch6: CPU SchedulingAhmar Hashmi
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)dsuyal1
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)dsuyal1
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6 Nadhiien Abraham
 
Cpu scheduling(suresh)
Cpu scheduling(suresh)Cpu scheduling(suresh)
Cpu scheduling(suresh)Nagarajan
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System StructureAhmar Hashmi
 

Viewers also liked (12)

Operating systems mayo
Operating systems mayoOperating systems mayo
Operating systems mayo
 
cpu sechduling
cpu sechduling cpu sechduling
cpu sechduling
 
CH. 4 Operating Systems and Utility Programs
CH. 4 Operating Systems and Utility ProgramsCH. 4 Operating Systems and Utility Programs
CH. 4 Operating Systems and Utility Programs
 
Galvin-operating System(Ch3)
Galvin-operating System(Ch3)Galvin-operating System(Ch3)
Galvin-operating System(Ch3)
 
Ch6: CPU Scheduling
Ch6: CPU SchedulingCh6: CPU Scheduling
Ch6: CPU Scheduling
 
Galvin-operating System(Ch9)
Galvin-operating System(Ch9)Galvin-operating System(Ch9)
Galvin-operating System(Ch9)
 
Galvin-operating System(Ch5)
Galvin-operating System(Ch5)Galvin-operating System(Ch5)
Galvin-operating System(Ch5)
 
4.Threads
4.Threads4.Threads
4.Threads
 
Circuit and analog electronics ch6
Circuit and analog electronics ch6  Circuit and analog electronics ch6
Circuit and analog electronics ch6
 
Cpu scheduling(suresh)
Cpu scheduling(suresh)Cpu scheduling(suresh)
Cpu scheduling(suresh)
 
Ch3: Operating System Structure
Ch3: Operating System StructureCh3: Operating System Structure
Ch3: Operating System Structure
 
Scheduling algorithms
Scheduling algorithmsScheduling algorithms
Scheduling algorithms
 

Similar to Galvin-operating System(Ch6)

ch6_CPU Scheduling.ppt
ch6_CPU Scheduling.pptch6_CPU Scheduling.ppt
ch6_CPU Scheduling.pptridham29
 
cloud computing chapter one in computer science
cloud computing chapter one in computer sciencecloud computing chapter one in computer science
cloud computing chapter one in computer scienceTSha7
 
scheduling.ppt
scheduling.pptscheduling.ppt
scheduling.pptJohn100878
 
Various CPU Scheduling Algorithms in OS.ppt
Various CPU Scheduling Algorithms in OS.pptVarious CPU Scheduling Algorithms in OS.ppt
Various CPU Scheduling Algorithms in OS.ppttaricvilla
 
ch6 (2).ppt operating system by williamm
ch6 (2).ppt operating system by williammch6 (2).ppt operating system by williamm
ch6 (2).ppt operating system by williammsidrayounas2004
 
Ch6 CPU Scheduling galvin
Ch6 CPU Scheduling galvinCh6 CPU Scheduling galvin
Ch6 CPU Scheduling galvinShubham Singh
 
cpu scheduling
cpu schedulingcpu scheduling
cpu schedulinghashim102
 
Operating System - CPU Scheduling Introduction
Operating System - CPU Scheduling IntroductionOperating System - CPU Scheduling Introduction
Operating System - CPU Scheduling IntroductionJimmyWilson26
 
cpu sheduling.pdf
cpu sheduling.pdfcpu sheduling.pdf
cpu sheduling.pdfogpaeog
 
Ch5 cpu-scheduling
Ch5 cpu-schedulingCh5 cpu-scheduling
Ch5 cpu-schedulingAnkit Dubey
 
ch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdfch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdfCuracaoJTR
 
6 cpu scheduling
6 cpu scheduling6 cpu scheduling
6 cpu schedulingBaliThorat1
 
OS-CPU-Scheduling-chap5.pptx
OS-CPU-Scheduling-chap5.pptxOS-CPU-Scheduling-chap5.pptx
OS-CPU-Scheduling-chap5.pptxDrAmarNathDhebla
 

Similar to Galvin-operating System(Ch6) (20)

ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
ch6_CPU Scheduling.ppt
ch6_CPU Scheduling.pptch6_CPU Scheduling.ppt
ch6_CPU Scheduling.ppt
 
cpu scheduling.ppt
cpu scheduling.pptcpu scheduling.ppt
cpu scheduling.ppt
 
cloud computing chapter one in computer science
cloud computing chapter one in computer sciencecloud computing chapter one in computer science
cloud computing chapter one in computer science
 
ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
scheduling.ppt
scheduling.pptscheduling.ppt
scheduling.ppt
 
ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
Various CPU Scheduling Algorithms in OS.ppt
Various CPU Scheduling Algorithms in OS.pptVarious CPU Scheduling Algorithms in OS.ppt
Various CPU Scheduling Algorithms in OS.ppt
 
ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
ch6 (2).ppt operating system by williamm
ch6 (2).ppt operating system by williammch6 (2).ppt operating system by williamm
ch6 (2).ppt operating system by williamm
 
Ch6 CPU Scheduling galvin
Ch6 CPU Scheduling galvinCh6 CPU Scheduling galvin
Ch6 CPU Scheduling galvin
 
cpu scheduling
cpu schedulingcpu scheduling
cpu scheduling
 
Operating System - CPU Scheduling Introduction
Operating System - CPU Scheduling IntroductionOperating System - CPU Scheduling Introduction
Operating System - CPU Scheduling Introduction
 
cpu sheduling.pdf
cpu sheduling.pdfcpu sheduling.pdf
cpu sheduling.pdf
 
Ch5 cpu-scheduling
Ch5 cpu-schedulingCh5 cpu-scheduling
Ch5 cpu-scheduling
 
ch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdfch5_EN_CPUSched_2022.pdf
ch5_EN_CPUSched_2022.pdf
 
6 cpu scheduling
6 cpu scheduling6 cpu scheduling
6 cpu scheduling
 
OS-CPU-Scheduling-chap5.pptx
OS-CPU-Scheduling-chap5.pptxOS-CPU-Scheduling-chap5.pptx
OS-CPU-Scheduling-chap5.pptx
 
U2-LP2.ppt
U2-LP2.pptU2-LP2.ppt
U2-LP2.ppt
 

Galvin-operating System(Ch6)

  • 1. Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation Silberschatz, Galvin 6.1 and Gagne Ó2002 Operating System
  • 2. Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait. CPU burst distribution Silberschatz, Galvin 6.2 and Gagne Ó2002 Operating System
  • 3. Alternating Sequence of CPU And I/O Bursts Silberschatz, Galvin 6.3 and Gagne Ó2002 Operating System
  • 4. Histogram of CPU-burst Times Silberschatz, Galvin 6.4 and Gagne Ó2002 Operating System
  • 5. CPU Scheduler Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them. CPU scheduling decisions may take place when a process: 1. Switches from running to waiting state. 2. Switches from running to ready state. 3. Switches from waiting to ready. 4. Terminates. Scheduling under 1 and 4 is nonpreemptive. All other scheduling is preemptive. Silberschatz, Galvin 6.5 and Gagne Ó2002 Operating System
  • 6. Dispatcher Dispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves: switching context switching to user mode jumping 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. Silberschatz, Galvin 6.6 and Gagne Ó2002 Operating System
  • 7. Scheduling Criteria CPU utilization – keep the CPU as busy as possible Throughput – # of processes that complete their execution per time unit Turnaround time – amount of time to execute a particular process Waiting time – amount of time a process has been waiting in the ready queue Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment) Silberschatz, Galvin 6.7 and Gagne Ó2002 Operating System
  • 8. Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time Silberschatz, Galvin 6.8 and Gagne Ó2002 Operating System
  • 9. First-Come, First-Served (FCFS) Scheduling Process Burst Time P1 24 P2 3 P3 3 Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is: P1 P2 P3 0 24 27 30 Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 Silberschatz, Galvin 6.9 and Gagne Ó2002 Operating System
  • 10. FCFS Scheduling (Cont.) Suppose that the processes arrive in the order P2 , P3 , P1 . The Gantt chart for the schedule is: P1 P3 P2 0 3 6 30 Waiting time for P1 = 6;P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case. Convoy effect short process behind long process Silberschatz, Galvin 6.10 and Gagne Ó2002 Operating System
  • 11. Shortest-Job-First (SJR) Scheduling Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time. Two schemes: nonpreemptive – once CPU given to the process it cannot be preempted until completes its CPU burst. preemptive – if a new process arrives with CPU burst length less than remaining time of current executing process, preempt. This scheme is know as the Shortest-Remaining-Time-First (SRTF). SJF is optimal – gives minimum average waiting time for a given set of processes. Silberschatz, Galvin 6.11 and Gagne Ó2002 Operating System
  • 12. Example of Non-Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive) P1 P3 P2 P4 0 3 7 8 12 16 Average waiting time = (0 + 6 + 3 + 7)/4 - 4 Silberschatz, Galvin 6.12 and Gagne Ó2002 Operating System
  • 13. Example of Preemptive SJF Process Arrival Time Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive) P1 P3 P2 PPP2 4 1 0 2 4 5 7 11 Average waiting time = (9 + 1 + 0 +2)/4 - 3 16 Silberschatz, Galvin 6.13 and Gagne Ó2002 Operating System
  • 14. Determining Length of Next CPU Burst Can only estimate the length. Can be done by using the length of previous CPU bursts, using exponential averaging. th 1. actual lenght of CPU burst tn n = + a a 2. = predicted value for the next CPU burst t n 1 3. , 0 £ £ 1 4. Define : t n=1 =a tn + (1-a )t n . Silberschatz, Galvin 6.14 and Gagne Ó2002 Operating System
  • 15. Prediction of the Length of the Next CPU Burst Silberschatz, Galvin 6.15 and Gagne Ó2002 Operating System
  • 16. Examples of Exponential Averaging a =0 tn+1 = tn Recent history does not count. a =1 tn+1 = tn Only the actual last CPU burst counts. If we expand the formula, we get: tn+1 = a tn+(1 - a) a tn -1 + … +(1 - a )j a tn -1 + … +(1 - a )n=1 tn t0 Since both a and (1 - a) are less than or equal to 1, each successive term has less weight than its predecessor. Silberschatz, Galvin 6.16 and Gagne Ó2002 Operating System
  • 17. Priority Scheduling A priority number (integer) is associated with each process The CPU is allocated to the process with the highest priority (smallest integer º highest priority). Preemptive nonpreemptive SJF is a priority scheduling where priority is the predicted next CPU burst time. Problem º Starvation – low priority processes may never execute. Solution º Aging – as time progresses increase the priority of the process. Silberschatz, Galvin 6.17 and Gagne Ó2002 Operating System
  • 18. Round Robin (RR) Each process gets a small unit of CPU time (time quantum), usually 10-100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready queue. If there are n processes in the ready queue and the time quantum is q, then each process gets 1/n of the CPU time in chunks of at most q time units at once. No process waits more than (n-1)q time units. Performance q large Þ FIFO q small Þ q must be large with respect to context switch, otherwise overhead is too high. Silberschatz, Galvin 6.18 and Gagne Ó2002 Operating System
  • 19. Example of RR with Time Quantum = 20 Process Burst Time P1 53 P2 17 P3 68 P4 24 The Gantt chart is: P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 Typically, higher average turnaround than SJF, but better response. Silberschatz, Galvin 6.19 and Gagne Ó2002 Operating System
  • 20. Time Quantum and Context Switch Time Silberschatz, Galvin 6.20 and Gagne Ó2002 Operating System
  • 21. Turnaround Time Varies With The Time Quantum Silberschatz, Galvin 6.21 and Gagne Ó2002 Operating System
  • 22. Multilevel Queue Ready queue is partitioned into separate queues: foreground (interactive) background (batch) Each queue has its own scheduling algorithm, foreground – RR background – FCFS Scheduling 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; i.e., 80% to foreground in RR 20% to background in FCFS Silberschatz, Galvin 6.22 and Gagne Ó2002 Operating System
  • 23. Multilevel Queue Scheduling Silberschatz, Galvin 6.23 and Gagne Ó2002 Operating System
  • 24. Multilevel Feedback Queue A process can move between the various queues; aging can be implemented this way. Multilevel-feedback-queue scheduler defined by the following parameters: number of queues scheduling algorithms for each queue method used to determine when to upgrade a process method used to determine when to demote a process method used to determine which queue a process will enter when that process needs service Silberschatz, Galvin 6.24 and Gagne Ó2002 Operating System
  • 25. Example of Multilevel Feedback Queue Three queues: Q0 – time quantum 8 milliseconds Q1 – time quantum 16 milliseconds Q2 – FCFS Scheduling A new job enters queue Q0 which is served FCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to queue Q1. At Q1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2. Silberschatz, Galvin 6.25 and Gagne Ó2002 Operating System
  • 26. Multilevel Feedback Queues Silberschatz, Galvin 6.26 and Gagne Ó2002 Operating System
  • 27. Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available. Homogeneous processors within a multiprocessor. Load sharing Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing. Silberschatz, Galvin 6.27 and Gagne Ó2002 Operating System
  • 28. Real-Time Scheduling Hard real-time systems – required to complete a critical task within a guaranteed amount of time. Soft real-time computing – requires that critical processes receive priority over less fortunate ones. Silberschatz, Galvin 6.28 and Gagne Ó2002 Operating System
  • 29. Dispatch Latency Silberschatz, Galvin 6.29 and Gagne Ó2002 Operating System
  • 30. Algorithm Evaluation Deterministic modeling – takes a particular predetermined workload and defines the performance of each algorithm for that workload. Queueing models Implementation Silberschatz, Galvin 6.30 and Gagne Ó2002 Operating System
  • 31. Evaluation of CPU Schedulers by Simulation Silberschatz, Galvin 6.31 and Gagne Ó2002 Operating System
  • 32. Solaris 2 Scheduling Silberschatz, Galvin 6.32 and Gagne Ó2002 Operating System
  • 33. Windows 2000 Priorities Silberschatz, Galvin 6.33 and Gagne Ó2002 Operating System