CPU scheduling
CPU scheduling
CPU Scheduling
• Basic Concepts
• Scheduling Criteria
• Scheduling Algorithms
• Thread Scheduling
• Multiple-Processor Scheduling
• Real-Time CPU Scheduling
• Operating Systems Examples
• Algorithm Evaluation
2
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
3
CPU Scheduler
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
3. Switches from waiting to ready
4. Terminates
• For situations 1 and 4, there is no choice in terms of
scheduling. A new process (if one exists in the ready
queue) must be selected for execution.
• For situations 2 and 3, however, there is a choice.
4
Preemptive and Nonpreemptive
Scheduling
5
Preemptive and Nonpreemptive
Scheduling
6
Dispatcher
• Dispatcher module gives control
of the CPU to the process
selected by the CPU scheduler;
this involves:
– Switching context
– Switching to user mode
– 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
7
Scheduling Criteria
• CPU utilization – keep the CPU as busy as
possible
• Throughput – number of processes that
complete their execution per time unit
• Turnaround 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)
8
Scheduling Algorithm
Optimization Criteria
• Max CPU utilization
• Max throughput
• Min turnaround time
• Min waiting time
• Min response time
9
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:
P1 P2 P3
0 24 27 30
10
FCFS Scheduling
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
12
Example of SJF
Process Burst Time
P1 6
P2 8
P3 7
P4 3
P4 P1 P3 P2
0 3 9 16 24
17
Turnaround Time Varies With The
Time Quantum
18
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
20
Priority Scheduling w/ Round-Robin
21
Example 1
Consider the following set of processes, with the length of the CPU burst
time given in milliseconds:
Process Burst Time Priority
P1 2 2
P2 1 1
P3 8 4
P4 4 2
P5 5 3
The processes are assumed to have arrived in the order P1, P2, P3, P4, P5,
all at time 0.
a. Draw four Gantt charts that illustrate the execution of these processes
using the following scheduling algorithms: FCFS, SJF, non preemptive
priority (a larger priority number implies a higher
priority), and RR (quantum = 2).
b. What is the turnaround time of each process for each of the
scheduling algorithms in part a?
c. What is the waiting time of each process for each of these scheduling
algorithms?
d. Which of the algorithms results in the minimum average waiting
Example 2
Thank You