0% found this document useful (0 votes)
48 views29 pages

5 OS CPUscheduling

The document discusses CPU scheduling algorithms including first-come, first-served (FCFS), shortest job first (SJF), priority scheduling, and round robin (RR). It covers concepts like scheduling criteria, context switching, and examples of each algorithm.

Uploaded by

Han
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)
48 views29 pages

5 OS CPUscheduling

The document discusses CPU scheduling algorithms including first-come, first-served (FCFS), shortest job first (SJF), priority scheduling, and round robin (RR). It covers concepts like scheduling criteria, context switching, and examples of each algorithm.

Uploaded by

Han
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/ 29

CPU Scheduling

Chapter 6
 Basic Concepts
Scope  Scheduling Criteria
 Scheduling Algorithms
 To introduce CPU scheduling, which is the basis for
multiprogrammed operating systems
Objectives  To describe various CPU-scheduling algorithms
 To discuss evaluation criteria for selecting a CPU-scheduling
algorithm for a particular system
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 followed by I/O burst
 CPU burst distribution is of main concern
 Short-term scheduler selects from among the processes in ready
queue, and allocates the CPU to one of them
 Queue may be ordered in various ways

 CPU scheduling decisions may take place when a process:


 1. Switches from running to waiting state
 2. Switches from running to ready state

CPU Scheduler 

3. Switches from waiting to ready
4. Terminates

 Scheduling under 1 and 4 is nonpreemptive


 All other scheduling is preemptive
 Consider access to shared data
 Consider preemption while in kernel mode
 Consider interrupts occurring during crucial OS activities
 Dispatcher module gives control of the CPU to the process
selected by the short-term scheduler; this involves:
 switching context
 switching to user mode
Dispatcher  jumping to the proper location in the user program to restart that
program

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


process and start another running
 CPU utilization – keep the CPU as busy as possible
 Throughput – # of processes that complete their execution per
time unit
 Turnaround time – amount of time to execute a particular process
 TAT = CT - AT

 Waiting time – amount of time a process has been waiting in the


Scheduling ready queue
 WT = CT - AT - BT
Criteria  WT = TAT - BT

 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)
 RT = (The first time to be executed by CPU) - AT
Completion Time (CT): This is the time when the process completes its execution.
Arrival Time (AT): This is the time when the process has arrived in the ready state.
Burst Time (BT): This is the time required by the process for its execution.
 Max CPU utilization
Scheduling
 Max throughput
Algorithm  Min turnaround time
Optimization  Min waiting time
Criteria  Min response time
Process Burst Time
P1 24
P2 3
P3 3
First- Come,  Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:
First-Served P1 P2 P3
(FCFS) 0 24 27 30

Scheduling  Waiting time for P1 = 0; P2 = 24; P3 = 27


 Average waiting time: (0 + 24 + 27)/3 = 17
Suppose that the processes arrive in the order:
P2 , P3 , P1
 The Gantt chart for the schedule is:

P2 P3 P1

FCFS
0 3 6 30

 Waiting time:
Scheduling  P1 = 6;
 P2 = 0;
(Cont.)  P3 = 3
 Average waiting time: (6 + 0 + 3)/3 = 3
 Much better than previous case
 Convoy effect - short process behind long process
 Consider one CPU-bound and many I/O-bound
processes
 Associate with each process the length of its next
CPU burst
 Use these lengths to schedule the process with the
Shortest-Job- shortest time
First (SJF)  SJF is optimal – gives minimum average waiting time
for a given set of processes
Scheduling  The difficulty is knowing the length of the next CPU
request
 Could ask the user
Process Arrival Time Burst Time
P1 0.0 6
P2 0.0 8
P3 0.0 7
P4 0.0 3
Example of  SJF scheduling chart
SJF  Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
 What is the average waiting time using FCFS scheduling ?

P4 P1 P3 P2
0 3 9 16 24
Process Arrival Time Burst Time
P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3
Example of
SJF  SJF scheduling
 Execution order:
 Average waiting time:

 What is the average waiting time using FCFS scheduling ?


 Can only estimate the length – should be similar to the previous
one
 Then pick process with shortest predicted next CPU burst

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


exponential averaging
Determining 1. t n = actual length of n th CPU burst
2.  n +1 = predicted value for the next CPU burst
Length of Next 3.  , 0    1
CPU Burst 4. Define :
 n =1 =  t n + (1 −  ) n .
 Commonly, α set to ½
 Preemptive version called shortest-remaining-time-first
Prediction of
the Length of
the Next CPU
Burst

Prove that diagram !!!


  =0
 n+1 = n
 Recent history does not count

  =1
 n+1 =  tn
Examples of  Only the actual last CPU burst counts

Exponential  If we expand the formula, we get:


 n+1 =  tn+(1 - ) tn -1 + …
Averaging  +(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
 Now we add the concepts of varying arrival times and preemption to the
analysis
Process Arrival Time Burst Time
P1 0 8

Example of P2 1 4
P3 2 9
Shortest- P4 3 5
remaining-
time-first  Preemptive SJF Gantt Chart

P1 P2 P4 P1 P3
0 1 5 10 17 26

 Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec


 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
Priority  SJF is priority scheduling where priority is the inverse of
Scheduling predicted next CPU burst time
 Problem :
 Starvation – low priority processes may never execute

 Solution
 Aging – as time progresses increase the priority of the
process
Process Burst Time Priority
P1 10 3
P2 1 1
P3 2 4
P4 1 5
Example of P5 5 2

Priority  Priority scheduling Gantt Chart


Scheduling

 Average waiting time = 8.2 msec


 What is the average waiting time using FCFS and SJF?
 Each process gets a small unit of CPU time (time quantum q),
 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
Round Robin most q time units at once.
(RR)  No process waits more than (n-1)q time units.
 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
Process Burst Time
P1 24
P2 3
P3 3
 The Gantt chart
Example of
RR with Time P1 P2 P3 P1 P1 P1 P1 P1
Quantum = 4 0 4 7 10 14 18 22 26 30

 Average turnaround time= (30+ 7+ 10)/3= 15.67 msec


 Typically, higher average turnaround time than SJF, but better response
 q should be large compared to context switch time
 q usually 10ms to 100ms, context switch < 10 usec
Time
Quantum and
Context
Switch Time
 For Q=1
 Average turn around time = 11 msec (prove)
 For Q=5
 Average turn around time = 12.25 msec (prove)
Turnaround and so on.

Time Varies
With The
Time
Quantum
Scheduling Preemptive/ nonpreemptive
FCFS nonpreemptive

Preemptive / SJF may be either preemptive/ nonpreemptive

Non-preemptive Priority may be either preemptive/ nonpreemptive

Scheduling
RR preemptive
 Ready queue is partitioned into separate queues, e.g.:
 foreground (interactive)
 background (batch)
 Process permanently in a given queue
 Each queue has its own scheduling algorithm:
 foreground – RR
Multilevel  background – FCFS

Queue  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
Multilevel
Queue
Scheduling
 A process can move between the various queues; aging can be
implemented this way
 Multilevel-feedback-queue scheduler defined by the following
Multilevel parameters:
 number of queues
Feedback  scheduling algorithms for each queue
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
 Three queues:
 Q0 – RR with time quantum 8 milliseconds
 Q1 – RR time quantum 16 milliseconds
 Q2 – FCFS

Example of  Scheduling
Multilevel  A new job enters queue Q0 which is served
FCFS
Feedback  When it gains CPU, job receives 8
milliseconds
Queue  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
End of  Questions?!
Chapter 6

You might also like