Contents Last Week –FCFS –SJF Priority scheduling Round Robin Multi Level Queues Real Systems –Linux –XP
Priority Scheduling A priority is associated with each process, and the CPU is allocated to the process with the highest priority. We assume that low numbers represent high priority. May be preemptive or non-preemptive.
Example: Priority Scheduling Consider the following set of processes with their arrival times and the length of the CPU-burst time given in milliseconds The arrival order of the processes is P1, P2, P3, P4, P5 ProcessArrival TimePriorityBurst time P10310 P2011 P3042 P4051 P5025
Example: Priority Scheduling Proc ess Arrival Time Prio rity Burst time P10310 P2011 P3042 P4051 P5025 P2P5P1P3P4 106191618 Average wait time= (6+0+16+18+1)/5 = 8.2
Analysis of Priority Scheduling May leave some low-priority processes waiting indefinitely for CPU –Starvation. Aging – a technique of gradually increasing the priority of processes that have waited for a long time.
Round Robin Similar to FCFS but with preemption. Have a time quantum (time slice). –Let the first process in the queue run until it exceeds the time quantum, then run the next process. The arrival order of the processes is P1,P2,P3 ProcessArrival TimeBurst Time P1024 P203 P309
Example: Round Robin ProcessArrival TimeBurst Time P1024 P203 P309 Time Quantum = 5 milliseconds P1P2P3P1P3P1 08518132236 Average waiting Time = (12+5+13)/3 = 10 Time Quantum = 24 milliseconds P1P2P3 Average waiting Time = (0+24+27)/3 = 17 2427360 Turns into FCFS scheduling
Exercise: Round Robin ProcessArrival TimeBurst Time P1024 P203 P309 Time quantum = 2 milliseconds P1 P2 P3 02 8 4961115131917232236 What if context-switch time = 1 millisecond? Average waiting Time = (12+6+13)/3 = 10.33 Total context-switch time =12
Analysis of Round Robin Scheduling Very small quantum - large context switch overhead. Very big quantum - turns into FCFS. The time quantum should be large with respect to the context-switch time. –In most modern OSs Quantum time range: 10-100 milliseconds Context-switch time: <10 microseconds
Scheduling algorithms. FCFS, SJF, Priority, Round Robin. Preemptive, Non preemptive All Basic Algorithms –Real life systems have a mix of these approaches
Multi level Queues Separate scheduling within queues Scheduling between queues Foreground processes (Round Robin) Background processes (FCFS) Queue Scheduler (Priority)
Linux Priority Queue –0-99 real time –100-140 nice Higher priority = longer time slice Once time slice is expired, wait for all other slices to expire
XP 32 Level Priority Algorithm in two classes –1-15 Variable –16-31 Real time –Also 0 for memory management FIFO queue in each level. When Quantum runs out in Variable Class priority drops –Limits CPU intensive processes Foreground windows +3 priority
Summary Last Week –FCFS –SJF Priority scheduling Round Robin Multi Level Queues Real Systems –Linux –XP
Group Discussion For 5-10 minutes, discuss how you would design a scheduling algorithm for a Desktop PC, using multilevel queues.