220 likes | 496 Views
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
E N D
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 160 140 120 110 100 Frequency 80 60 40 20 32 40 0 8 16 24 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
Uses a FIFO queue Non preemptive An Example FCFS First come First Served Processes arrive at time 0 In the order P1, P2, P3
Example FCFS Gant chart P1 P2 P3 30 34 36 0 Average wait time = (0+30+34)/3 = 21.33 Turnaround time = (30+34+36)/3 = 33.33
Exercise (5 minutes) P3 P2 P1 0 2 6 36 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
Example: SJF Non Preemptive • Average Wait Time = (14+0+5+3)/4 = 5.5 P2 P4 P3 P1 0 5 7 14 22
Average wait time = (14+2+5+0)/3 = 5.25 Exercise Using SJF Preemptive What is the average wait time? P2 P4 P2 P3 P1 0 2 4 7 14 22
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