Download presentation
Presentation is loading. Please wait.
1
Chapter 6: Scheduling Algorithms Dr. Amjad Ali
2
Context switching 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. This enables multiple processes to share a single CPU. The context switch is an essential feature of a multitasking operating system. Context switches are usually computationally intensive and much of the design of operating systems is to optimize the use of context switches
3
Context switching The following steps are needed for a context switch to occur: Save the values of the program counter, registers, stack pointer. Change the state of the process in the PCB from running state to blocked state. Update the various times for process accounting information. Select a new process for execution. Update the state field in its PCB to running. Update memory management related information. Change the context of the CPU to the new process by loading the values of program counter and registers that were saved earlier. Context switching is a costly operation. Choose the time slice wisely. < 10 usec
4
CPU Switch From Process to Process
5
Process Scheduling Maximize CPU use, quickly switch processes onto CPU for time sharing Process scheduler selects among available processes for next execution on CPU Maintains scheduling queues of processes Job queue – set of all processes in the system Ready queue – set of all processes residing in main memory, ready and waiting to execute Device queues – set of processes waiting for an I/O device Processes migrate among the various queues
6
Representation of Process Scheduling
Queueing diagram represents queues, resources, flows
7
Schedulers Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU Sometimes the only scheduler in a system Short-term scheduler is invoked very frequently (milliseconds) (must be fast) Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow) The long-term scheduler controls the degree of multiprogramming
8
Schedulers Processes can be described as either:
I/O-bound process – spends more time doing I/O than computations, many short CPU bursts CPU-bound process – spends more time doing computations; few very long CPU bursts Types of process scheduling Preemptive Can be taken out from the processor after the time slice gets expire Non-preemptive Can’t be taken out unless it completes its execution
9
Scheduling Criteria CPU utilization – keep the CPU as busy as possible
Throughput – # of processes that complete their execution per unit time Turn around 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)
10
Scheduling Algorithm Optimization Criteria
Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time
11
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: Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: ( )/3 = 17 P1 P2 P3 24 27 30
12
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order: P2 , P3 , P1 The Gantt chart for the schedule is: Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: ( )/3 = 3 Much better than previous case Convoy effect - short process behind long process P1 P3 P2 6 3 30
13
Shortest-Job-First (SJF) Scheduling
Associate with each process the length of its next CPU burst Use these lengths to schedule the process with the shortest time SJF is optimal – gives minimum average waiting time for a given set of processes The longer processes may starve if there is a steady supply of shorter processes.
14
Example of SJF ProcessTime Burst Time P1 0.0 6 P2 2.0 8 P3 4.0 7
SJF scheduling chart Average waiting time = ( ) / 4 = 7 P4 P3 P1 3 16 9 P2 24
15
Class Exercise Process Execution Time P1 7 P2 8 P3 4 P4 3
16
Class Exercise Process Execution Time P1 7 P2 8 P3 4 P4 3
14 7 P2 22 Average waiting time = ( ) / 4 = 6
17
Shortest Remaining Time First
The preemptive version of SJF. Calculate the remaining execution time for each process Schedule the process with the minimum remaining time Like SJF, longer processes can starve in SRT algorithm
18
Example of Shortest-remaining-time-first
Now we add the concepts of varying arrival times and preemption to the analysis ProcessA arri Arrival TimeT Burst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5 Preemptive SJF Gantt Chart Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec P1 P2 1 17 10 P3 26 5 P4
19
Class Exercise Process Arrival Time Execution Time P1 7 P2 1 3 P3 2 8
7 P2 1 3 P3 2 8 P4 4
20
Class Exercise Process Arrival Time Execution Time P1 7 P2 1 3 P3 2 8
7 P2 1 3 P3 2 8 P4 4 P1 P2 P4 P1 P3 8 14 22 1 4 P1 = 8 – 1 = 7 P2 = 1 – 1 = 0 P3 = 14 – 2 = 12 P4 = 4 – 3 = 1 Average waiting time = ( ) / 4 = 5
21
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 Non-preemptive SJF is priority scheduling where priority is the inverse of predicted next CPU burst time Problem Starvation – low priority processes may never execute Solution Aging – as time progresses increase the priority of the process
22
Example of Priority Scheduling
ProcessA arri Burst TimeT Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Priority scheduling Gantt Chart Average waiting time = 8.2 msec P2 P3 P5 1 18 16 P4 19 6 P1
23
Round Robin (RR) Each process gets a small unit of CPU time (time quantum or time slice) q, usually 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. 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. Timer interrupts every quantum to schedule next process Performance q large FIFO q small q must be large with respect to context switch, otherwise overhead is too high
24
Example of RR Process Burst Time P1 24 P2 3 P3 3 Time slice = 4
The Gantt chart is: Typically, higher average turnaround time than SJF, but better response time q should be large compared to context switch time q usually 10ms to 100ms, context switch < 10 usec P1 P2 P3 4 7 10 14 18 22 26 30
25
Algorithm Evaluation How to select CPU-scheduling algorithm for an OS?
Determine criteria, then evaluate algorithms Deterministic modeling Type of analytic evaluation Takes a particular predetermined workload and defines the performance of each algorithm for that workload Consider 5 processes arriving at time 0:
26
Deterministic Evaluation
For each algorithm, calculate minimum average waiting time Simple and fast, but requires exact numbers for input, applies only to those inputs FCFS is 28ms: Non-preemptive SJF is 13ms: RR is 23ms:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.