0% found this document useful (0 votes)
36 views15 pages

L3 ASR2 07 Scheduling

This document discusses CPU scheduling in operating systems. It covers basic concepts like multiprogramming and the CPU-I/O burst cycle. It then discusses scheduling criteria like CPU utilization, throughput, turnaround time and waiting time. It also covers common scheduling algorithms like first-come first-served (FCFS) and shortest-job-first (SJF) scheduling. FCFS schedules processes in the order of arrival while SJF selects the process with the shortest estimated run time.

Uploaded by

charbeldaher34
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views15 pages

L3 ASR2 07 Scheduling

This document discusses CPU scheduling in operating systems. It covers basic concepts like multiprogramming and the CPU-I/O burst cycle. It then discusses scheduling criteria like CPU utilization, throughput, turnaround time and waiting time. It also covers common scheduling algorithms like first-come first-served (FCFS) and shortest-job-first (SJF) scheduling. FCFS schedules processes in the order of arrival while SJF selects the process with the shortest estimated run time.

Uploaded by

charbeldaher34
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Chapter 5: CPU Scheduling

Chapter 5: CPU Scheduling

 Basic Concepts
 Scheduling Criteria
 Scheduling Algorithms
 Multiple-Processor Scheduling
 Real-Time Scheduling
 Thread Scheduling
 Operating Systems Examples
 Java Thread Scheduling
 Algorithm Evaluation

Operating System Concepts – 7th Edition, Feb 2, 2005 5.2 Silberschatz, Galvin and Gagne ©2005

1
Basic Concepts

 Maximum CPU utilization obtained with multiprogramming


 CPU–I/O Burst Cycle – Process execution consists of a cycle of
CPU execution and I/O wait
 CPU burst distribution

Operating System Concepts – 7th Edition, Feb 2, 2005 5.3 Silberschatz, Galvin and Gagne ©2005

Alternating Sequence of CPU And I/O Bursts

Operating System Concepts – 7th Edition, Feb 2, 2005 5.4 Silberschatz, Galvin and Gagne ©2005

2
Histogram of CPU-burst Times

Exponential / hyper exponential


large # of short CPU bursts
small # of long CPU bursts

Operating System Concepts – 7th Edition, Feb 2, 2005 5.5 Silberschatz, Galvin and Gagne ©2005

CPU Scheduler

 Selects from among the processes in memory that are ready to


execute, and allocates the CPU to one of them
 CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
 Scheduling under 1 and 4 is nonpreemptive or cooperative
 All other scheduling is preemptive

 Preemptive &shared data ?


 Operating system kernel ?
 Wait for a system call to complete / or I/O to block before
context switch

Operating System Concepts – 7th Edition, Feb 2, 2005 5.6 Silberschatz, Galvin and Gagne ©2005

3
Dispatcher

 Dispatcher module gives control of the CPU to the process


selected by the short-term scheduler; this involves:
 switching context
 switching to user mode
 jumping to the proper location in the user program to restart
that program

 As fast as possible  invoked during every process switch

 Dispatch latency – time it takes for the dispatcher to stop one


process and start another running

Operating System Concepts – 7th Edition, Feb 2, 2005 5.7 Silberschatz, Galvin and Gagne ©2005

Scheduling Criteria

 CPU utilization – keep the CPU as busy as possible


40% to 90%

 Throughput – # of processes that complete their execution


per time unit (1/hour to 10/seconde)

 Turnaround time – amount of time to execute a particular


process (from submission to completion)

 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)

Operating System Concepts – 7th Edition, Feb 2, 2005 5.8 Silberschatz, Galvin and Gagne ©2005

4
Optimization Criteria

 Max CPU utilization


 Max throughput

 Min turnaround time


 Min waiting time
 Min response time

Operating System Concepts – 7th Edition, Feb 2, 2005 5.9 Silberschatz, Galvin and Gagne ©2005

First-
First-Come, First-
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:

P1 P2 P3

0 24 27 30
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17

Operating System Concepts – 7th Edition, Feb 2, 2005 5.10 Silberschatz, Galvin and Gagne ©2005

5
FCFS Scheduling (Cont.)

Suppose that the processes arrive in the order


P2 , P3 , P1
 The Gantt chart for the schedule is:

P2 P3 P1

0 3 6 30
 Waiting time for P1 = 6; P2 = 0; P3 = 3
 Average waiting time: (6 + 0 + 3)/3 = 3
 Much better than previous case

 Example of n I/O bound and 1 CPU bound

 Convoy effect short process behind long process

Operating System Concepts – 7th Edition, Feb 2, 2005 5.11 Silberschatz, Galvin and Gagne ©2005

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
 shortest next CPU burst algorithm
 Two schemes:
 nonpreemptive – once CPU given to the process it cannot be
preempted until completes its CPU burst
 preemptive – if a new process arrives with CPU burst length
less than remaining time of current executing process,
preempt. This scheme is know as the
Shortest-Remaining-Time-First (SRTF)

 SJF is optimal – gives minimum average waiting time for a


given set of processes
 moving a short process before a long one decrease the waiting
time of the short more than it increase the waiting of the long 
the average waiting time decreases

Operating System Concepts – 7th Edition, Feb 2, 2005 5.12 Silberschatz, Galvin and Gagne ©2005

6
Example of Non-Preemptive SJF

Process Arrival Time Burst Time


P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
 SJF (non-preemptive)

P1 P3 P2 P4

0 3 7 8 12 16

 Average waiting time = (0 + 6 + 3 + 7)/4 = 4

Operating System Concepts – 7th Edition, Feb 2, 2005 5.13 Silberschatz, Galvin and Gagne ©2005

Example of Preemptive SJF

Process Arrival Time Burst Time


P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
 SJF (preemptive)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

 Average waiting time = (9 + 1 + 0 +2)/4 = 3

Operating System Concepts – 7th Edition, Feb 2, 2005 5.14 Silberschatz, Galvin and Gagne ©2005

7
Determining Length of Next CPU Burst

 Long Term Job  user process time limit

 Can only estimate/predict the length


 Can be done by using the length of previous CPU bursts, using
exponential averaging

1. t n = actual length of n th CPU burst


2. τ n +1 = predicted value for the next CPU burst
3. α , 0 ≤ α ≤ 1
4. Define : τ n =1 = α t n + (1 − α )τ n .
 tn  actual estimate
 τ  past history
 α relative weight of the recent / past history

Operating System Concepts – 7th Edition, Feb 2, 2005 5.15 Silberschatz, Galvin and Gagne ©2005

Prediction of the Length of the Next CPU Burst

 τ0 = 10
 α=½

Operating System Concepts – 7th Edition, Feb 2, 2005 5.16 Silberschatz, Galvin and Gagne ©2005

8
Examples of Exponential Averaging

 α =0
 τn+1 = τn
 Recent history does not count
 α =1
 τn+1 = α tn
 Only the actual last CPU burst counts
 If we expand the formula, we get:
τn+1 = α tn+(1 - α)α tn -1 + …
+(1 - α )j α tn -j + …
+(1 - α )n +1 τ0

 Since both α and (1 - α) are less than or equal to 1, each


successive term has less weight than its predecessor

Operating System Concepts – 7th Edition, Feb 2, 2005 5.17 Silberschatz, Galvin and Gagne ©2005

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
 nonpreemptive
 SJF is a priority scheduling where priority is the predicted next CPU burst
time
 Problem ≡ Starvation – low priority processes may never execute
 2AM on Sunday ?
 Rumor: Shutdown IBM 7094 at MIT in 73, low PP submitted in 67!
 Solution ≡ Aging – as time progresses increase the priority of the process

Operating System Concepts – 7th Edition, Feb 2, 2005 5.18 Silberschatz, Galvin and Gagne ©2005

9
Round Robin (RR)
 Each process gets a small unit of CPU time (time quantum), usually 10-
100 milliseconds. After this time has elapsed, the process is preempted
and added to the end of the ready 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 at once. No process waits more than (n-1)q time units.

 Performance
 q large ⇒ FIFO
 q small ⇒ q must be large with respect to context switch, otherwise
overhead is too high
 Time quanta: 10 to 100 milliseconds
 Context switch time: less than 10 microseconds

Operating System Concepts – 7th Edition, Feb 2, 2005 5.19 Silberschatz, Galvin and Gagne ©2005

Example of RR with Time Quantum = 20

Process Burst Time


P1 53
P2 17
P3 68
P4 24
 The Gantt chart is:

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

 Typically, higher average turnaround than SJF, but better response

Operating System Concepts – 7th Edition, Feb 2, 2005 5.20 Silberschatz, Galvin and Gagne ©2005

10
Time Quantum and Context Switch Time

Operating System Concepts – 7th Edition, Feb 2, 2005 5.21 Silberschatz, Galvin and Gagne ©2005

Turnaround Time Varies With The Time Quantum

Average turnararound time can be improved if most processes finish their next CPU
burst in one time quantum

80% of the CPU burst should be shorter than the time quantum

Operating System Concepts – 7th Edition, Feb 2, 2005 5.22 Silberschatz, Galvin and Gagne ©2005

11
Multilevel Queue

 Ready queue is partitioned into separate queues:


foreground (interactive)
background (batch)
 Each queue has its own scheduling algorithm
 foreground – RR
 background – FCFS
 Scheduling must be done between the queues
 Fixed priority scheduling; (i.e., serve all from foreground then
from background). Possibility of starvation.
 Time slice – each queue gets a certain amount of CPU time
which it can schedule amongst its processes; i.e., 80% to
foreground in RR
 20% to background in FCFS

Operating System Concepts – 7th Edition, Feb 2, 2005 5.23 Silberschatz, Galvin and Gagne ©2005

Multilevel Queue Scheduling

Operating System Concepts – 7th Edition, Feb 2, 2005 5.24 Silberschatz, Galvin and Gagne ©2005

12
Multilevel Feedback Queue

 A process can move between the various queues; aging can be


implemented this way
 Multilevel-feedback-queue scheduler defined by the following
parameters:
 number of queues
 scheduling algorithms for each queue
 method used to determine when to upgrade a process
 method used to determine when to demote a process
 method used to determine which queue a process will enter
when that process needs service

Operating System Concepts – 7th Edition, Feb 2, 2005 5.25 Silberschatz, Galvin and Gagne ©2005

Example of Multilevel Feedback Queue

 Three queues:
 Q0 – RR with time quantum 8 milliseconds
 Q1 – RR time quantum 16 milliseconds
 Q2 – FCFS
 Scheduling
 A new job enters queue Q0 which is served FCFS. When it
gains CPU, job receives 8 milliseconds. If it does not finish in 8
milliseconds, job is moved to queue Q1.
 At Q1 job is again served FCFS and receives 16 additional
milliseconds. If it still does not complete, it is preempted and
moved to queue Q2.

Operating System Concepts – 7th Edition, Feb 2, 2005 5.26 Silberschatz, Galvin and Gagne ©2005

13
Multilevel Feedback Queues

Operating System Concepts – 7th Edition, Feb 2, 2005 5.27 Silberschatz, Galvin and Gagne ©2005

Multiple-Processor Scheduling

 CPU scheduling more complex when multiple CPUs are


available
 Homogeneous processors within a multiprocessor
 Load sharing
 Asymmetric multiprocessing – only one processor
accesses the system data structures, alleviating the need
for data sharing

Operating System Concepts – 7th Edition, Feb 2, 2005 5.28 Silberschatz, Galvin and Gagne ©2005

14
Real-Time Scheduling

 Hard real-time systems – required to complete a


critical task within a guaranteed amount of time
 Soft real-time computing – requires that critical
processes receive priority over less fortunate ones

Operating System Concepts – 7th Edition, Feb 2, 2005 5.29 Silberschatz, Galvin and Gagne ©2005

15

You might also like