CMT603 Lecture 3 Scheduling
CMT603
Lecture 3
Scheduling
Contents
• Intro to scheduling
• Preemption
• Scheduling Algorithms– ?– ?– ?
Three Types of Scheduling
• Job scheduling– Selects processes from the process pool
(usually on disk) and loads them into memory• Also known as long-term scheduler
• Process scheduling– Selects processes from the ready queue.
• Short term scheduler
• Thread scheduling– Schedules threads from within a process
Why schedule processes? - Increase Efficiency
• The reason scheduling works is because of the CPU-I/O burst cycle.
• When processes run, it has been observed that:– CPU has a burst of activity– Then it waits for I/O
• The Durations of the CPU burst have been measured extensively
CPU Burst Durations
80 2416 32 40
140
120
110
100
80
60
40
20
160
Fre
quen
cy
Burst Duration (ms)[Silberschatz2005]
Reminder- How Operating Systems work
• Interrupts
• Dual Mode.
• Timers
Preemption
• Non-preemptive Scheduling: Once thesystem has assigned a CPU to aprocess, the system cannot removethat CPU from that process
• Preemptive Scheduling: The systemcan remove the running process from the CPU
Scheduling Criteria
• What do we want from a scheduling algorithm?
Scheduling Criteria
• It is desirable to maximize CPUutilization and throughput, and tominimize turnaround time, waiting timeand response time.
• CPU Utilization – use of the CPU.
• Throughput – number of processescompleted per time unit.
Scheduling Criteria
• Turnaround time – interval from submission to completion of a process.
• Waiting time – time spent ready to run but not running.
• Response time – the time from submission of a request until the first response is produced.– normally used for measuring an interactive
system.
Scheduling Algorithms
• Question…..
– Think of some different ways in which we could chose which process to execute next?
Scheduling Algorithms
• First come First Served
• SJF non preemptive / preemptive
• Priority
• Round robin
First come First Served
Process Burst Time (ms)
P1 30
P2 4
P3 2
Processes arrive at time 0In the order P1, P2, P3
• Uses a FIFO queue
• Non preemptive
• An Example FCFS
Process Burst Time (ms)
P1 30
P2 4
P3 2
P1
0
P3P2
363430
Average wait time = (0+30+34)/3 = 21.33
Turnaround time = (30+34+36)/3 = 33.33
Gant chart
Example FCFS
Exercise (5 minutes)
Process Burst Time (ms)
P3 2
P2 4
P1 30
P1P3 P2
0 362 6
Average wait time = (0+2+6)/3 = 2.67
Turnaround time = (2+6+36)/3 = 14.67
Analysis of FCFS
• Average wait time is very variable– If the burst times vary greatly
• Convoy effect
• Low device utilisation– If a CPU bound process is active for long
periods, other devices are not being used
Shortest job first
• Assign CPU to the process that has the smallest next CPU-burst time
• Non Preemptive or Preemptive
Process Arrival Time (ms)
Burst Time (ms)
P1 0 8
P2 0 5
P3 2 7
P4 2 2
Process Arrival Time (ms)
Burst Time (ms)
P1 0 8
P2 0 5
P3 2 7
P4 2 2
Example: SJF Non Preemptive
P2 P4
50 7 2214
P1P3
• Average Wait Time = (14+0+5+3)/4 = 5.5
Exercise
Process Arrival Time (ms)
Burst Time (ms)
P1 0 8
P2 0 5
P3 2 7
P4 2 2
Using SJF Preemptive
What is the averagewait time?
P2 P4
40 7 2214
P1P3
2
P2
• Average wait time = (14+2+5+0)/3 = 5.25
Analysis of SJF
• Optimal with respect to average waiting time
• How does scheduler know the length of the next CPU-burst time?
Summary (2)
• Intro to scheduling
• Preemption
• Scheduling Algorithms– FCFS– SJF
Exercise sheets