Chapter 6 Scheduling Algorithms Dr Amjad Ali Context


























- Slides: 26

Chapter 6: Scheduling Algorithms Dr. Amjad Ali

Context switching n A context switch is the computing process of storing and restoring the state (context) of a CPU so that execution can be resumed from the same point at a later time. l This enables multiple processes to share a single CPU. l The context switch is an essential feature of a multitasking operating system. l Context switches are usually computationally intensive and much of the design of operating systems is to optimize the use of context switches

Context switching n The following steps are needed for a context switch to occur: l Save the values of the program counter, registers, stack pointer. l Change the state of the process in the PCB from running state to blocked state. l Update the various times for process accounting information. l Select a new process for execution. l Update the state field in its PCB to running. l Update memory management related information. l Change the context of the CPU to the new process by loading the values of program counter and registers that were saved earlier. n Context switching is a costly operation. l Choose the time slice wisely. l < 10 usec

CPU Switch From Process to Process

Process Scheduling n Maximize CPU use, quickly switch processes onto CPU for time sharing n Process scheduler selects among available processes for next execution on CPU n Maintains scheduling queues of processes l Job queue – set of all processes in the system l Ready queue – set of all processes residing in main memory, ready and waiting to execute l Device queues – set of processes waiting for an I/O device l Processes migrate among the various queues

Representation of Process Scheduling n Queueing diagram represents queues, resources, flows

Schedulers n Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue n Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU l Sometimes the only scheduler in a system n Short-term scheduler is invoked very frequently (milliseconds) (must be fast) n Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow) n The long-term scheduler multiprogramming controls the degree of

Schedulers n Processes can be described as either: l I/O-bound process – spends more time doing I/O than computations, many short CPU bursts l CPU-bound process – spends more time doing computations; few very long CPU bursts n Types of process scheduling l Preemptive 4 Can l be taken out from the processor after the time slice gets expire Non-preemptive 4 Can’t be taken out unless it completes its execution

Scheduling Criteria n CPU utilization – keep the CPU as busy as possible n Throughput – # of processes that complete their execution per unit time n Turn around time – amount of time to execute a particular process n Waiting time – amount of time a process has been waiting in the ready queue n Response time – amount of time it takes from when a request was submitted until the first response is produced, not output (for timesharing environment)

Scheduling Algorithm Optimization Criteria n Max CPU utilization n Max throughput n Min turnaround time n Min waiting time n Min response time

First-Come, First-Served (FCFS) Scheduling Process Burst Time P 1 24 P 2 3 P 3 3 n Suppose that the processes arrive in the order: P 1 , P 2 , P 3 The Gantt Chart for the schedule is: P 1 0 P 2 24 n Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 n Average waiting time: (0 + 24 + 27)/3 = 17 P 3 27 30

FCFS Scheduling (Cont. ) Suppose that the processes arrive in the order: P 2 , P 3 , P 1 n The Gantt chart for the schedule is: P 2 0 P 3 3 P 1 6 n Waiting time for P 1 = 6; P 2 = 0; P 3 = 3 n Average waiting time: (6 + 0 + 3)/3 = 3 n Much better than previous case n Convoy effect - short process behind long process 30

Shortest-Job-First (SJF) Scheduling n Associate with each process the length of its next CPU burst l Use these lengths to schedule the process with the shortest time n SJF is optimal – gives minimum average waiting time for a given set of processes n The longer processes may starve if there is a steady supply of shorter processes.

Example of SJF Process. Time Burst Time P 1 0. 0 6 P 2 2. 0 8 P 3 4. 0 7 P 4 5. 0 3 n SJF scheduling chart P 4 0 P 3 P 1 3 9 P 2 16 n Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 24

Class Exercise Process Execution Time P 1 7 P 2 8 P 3 4 P 4 3

Class Exercise Process Execution Time P 1 7 P 2 8 P 3 4 P 4 3 P 4 0 P 1 P 3 3 7 P 2 14 Average waiting time = (7 + 14 + 3 + 0) / 4 = 6 22

Shortest Remaining Time First n The preemptive version of SJF. n Calculate the remaining execution time for each process n Schedule the process with the minimum remaining time n Like SJF, longer processes can starve in SRT algorithm

Example of Shortest-remaining-time-first n Now we add the concepts of varying arrival times and preemption to the analysis Process. Aarri Arrival Time. T Burst Time P 1 0 8 P 2 1 4 P 3 2 9 P 4 3 5 n Preemptive SJF Gantt Chart 0 1 P 4 P 2 P 1 5 10 P 3 17 26 n Average waiting time = [(10 -1)+(17 -2)+5 -3)]/4 = 26/4 = 6. 5 msec

Class Exercise Process Arrival Time Execution Time P 1 0 7 P 2 1 3 P 3 2 8 P 4 3 4

Class Exercise P 1 0 Process Arrival Time Execution Time P 1 0 7 P 2 1 3 P 3 2 8 P 4 3 4 P 2 1 P 4 4 8 P 1 = 8 – 1 = 7 P 2 = 1 – 1 = 0 P 3 = 14 – 2 = 12 P 4 = 4 – 3 = 1 Average waiting time = (7 + 0 + 12 + 1) / 4 = 5 P 3 14 22

Priority Scheduling n A priority number (integer) is associated with each process n The CPU is allocated to the process with the highest priority (smallest integer highest priority) l Preemptive l Non-preemptive n SJF is priority scheduling where priority is the inverse of predicted next CPU burst time n Problem Starvation – low priority processes may never execute n Solution Aging – as time progresses increase the priority of the process

Example of Priority Scheduling Process. Aarri Burst Time. T Priority P 1 10 3 P 2 1 1 P 3 2 4 P 4 1 5 P 5 5 2 n Priority scheduling Gantt Chart 0 P 1 P 5 P 2 1 6 n Average waiting time = 8. 2 msec P 3 16 P 4 18 19

Round Robin (RR) n Each process gets a small unit of CPU time (time quantum or time slice) q, usually 10 -100 milliseconds. After this time has elapsed, the process is preempted and added to the end or tail of the ready queue which is treated as circular queue. n 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. Each process must wait no longer than (n-1)q time units untill its next time quantum. n Timer interrupts every quantum to schedule next process n Performance l q large FIFO l q small q must be large with respect to context switch, otherwise overhead is too high

Example of RR Process P 1 P 2 P 3 Burst Time 24 3 3 Time slice = 4 n The Gantt chart is: P 1 0 P 2 4 P 3 7 P 1 10 P 1 14 P 1 18 22 P 1 26 30 n Typically, higher average turnaround time than SJF, but better response time n q should be large compared to context switch time n q usually 10 ms to 100 ms, context switch < 10 usec

Algorithm Evaluation n How to select CPU-scheduling algorithm for an OS? n Determine criteria, then evaluate algorithms n Deterministic modeling l Type of analytic evaluation l Takes a particular predetermined workload and defines the performance of each algorithm for that workload n Consider 5 processes arriving at time 0:

Deterministic Evaluation n For each algorithm, calculate minimum average waiting time n Simple and fast, but requires exact numbers for input, applies only to those inputs l FCFS is 28 ms: l Non-preemptive SJF is 13 ms: l RR is 23 ms: