Lecture 06 Operating System CPU Scheduling

advertisement
Operating
Systems
CPU Scheduling
Agenda for Today
 What
is Scheduler and its types
 Short-term scheduler
 Dispatcher
 Reasons for invoking scheduler
 Optimization criteria
 FCFS, SJF, SRTF, RR, Multi
level Queues With Examples
CPU Scheduling
 Scheduling processes in the
ready queue
 Short-term scheduler
 Different types of
schedulers
Life of a Process
Histogram of CPUburst Times
CPU Scheduler
 Short-term scheduler
 Selects a process from among
the processes in the ready
queue
 Invokes the dispatcher to have
the CPU allocated to the
selected process
Dispatcher
 Dispatcher 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 start (or
restart) it
Dispatcher
 Dispatch latency – time it takes
for the dispatcher to stop one
process and start another
running.
 Typically, a few microseconds
CPU Scheduler
 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
CPU Scheduler
 Scheduling under 1 and 4 is
nonpreemptive.
 All other scheduling is
preemptive.
Scheduling Criteria
 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
Scheduling Criteria
 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 timesharing environment)
Optimization Criteria
 Maximize CPU utilization
 Maximize throughput
 Minimize turnaround time
 Minimize waiting time
 Minimize response time
FCFS Scheduling
 The process that enters the ready
queue first is scheduled first,
regardless of the size of its next CPU
burst
 Example: Process Burst Time
P1
24
P2
3
P3
3
 Suppose that processes arrive into the
system in the order: P1, P2 , P3
FCFS Scheduling
 Processes are served in the order: P1,
P2, P3
 The Gantt Chart for the schedule is:
P1
0
P2
24
P3
27
30
 Waiting times P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0+24+27)/3 = 17
FCFS Scheduling
 Suppose that processes arrive in the
order: P2 , P3 , P1 .
 The Gantt chart for the schedule is:
P2
0
P3
3
P1
6
30
 Waiting time for P1 = 6; P2 = 0; P3 = 3
 Average waiting time: (6 + 0 + 3)/3 = 3
 Convoy effect short process behind long
process
Shortest-Job-First (SJF)
Scheduling
 Process with the shortest CPU
burst is scheduled first.
 Non-preemptive – once CPU
given to a process it cannot be
preempted until completes its
CPU burst.
Shortest-Job-First (SJF)
Scheduling
 Preemptive – if a new process arrives
with CPU burst length less than
remaining time of current executing
process, preempt it—ShortestRemaining-Time-First (SRTF).
 SJF is optimal non-preemptive
scheduling algorithm – gives minimum
average waiting time for a given set of
processes.
Non-Preemptive SJF
 Process
Arrival Time
P1
0.0
P2
2.0
P3
4.0
P4
5.0
 Gantt chart
P
P
1
0
3
7
Burst Time
7
4
1
4
P2
P4
12
16
 Average waiting time = (0+6+3+7)/4 = 4
Preemptive SJF
 Process
P1
P2
P3
P4
 Gantt chart
Arrival Time
0.0
2.0
4.0
5.0
P1
0
P2
2
P3
4
Burst Time
7
4
1
4
P2
5
P4
7
P1
11
16
 Average waiting time = (9 + 1 + 0 +2)/4 = 3
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
Priority Scheduling
 SJF is a priority scheduling
where priority is the predicted
next CPU burst time.
 Problem  Starvation – low
priority processes may never
execute.
 Solution  Aging – as time
progresses increase the priority
of the process.
Round Robin (RR)
 Each process gets a small unit
of CPU time, called time slice or
quantum, which is usually 10100 milliseconds. After this
time has elapsed, the process
is preempted and added to the
end of the ready queue.
Round Robin (RR)
 If there are n processes in the
ready queue, the time quantum
is q, and context switch time is
tcs, then no process waits more
than (n-1)(q+tcs) time units
 Used in time-sharing systems
where response time is an
important performance criteria
Round Robin (RR)
Performance
 q large  FCFS
 q small  q must be large with
respect to context
switch, otherwise
overhead is too high.
Round Robin Example
Process Burst Time
P1
53 — 33 — 13
P2
17
P3
68 — 48 — 28 — 8
P4
24 — 4
 The Gantt chart with quantum 20 is:
P1
0
P2
20
P3
37
P4
57
P1
77
P3
97
117
P4
P1
121 134
P3
P3
154 162
Round Robin Example
Process Turnaround Time
P1
P2
P3
P4
134
37
162
121
Waiting Time
134 – 53 = 81
37 – 17 = 20
162 – 68 = 94
121 – 24 = 97
 Average waiting time = 73
 Average waiting time for SJF = 38
 Typically, higher average turnaround
than SJF, but better response.
Quantum vs Context
Switch
Process Time = 10
Quantum
Context
Switches
12
0
6
1
1
9
Multilevel Queues
 Ready queue is partitioned into
separate queues:
- foreground (interactive)
- background (batch)
 Each queue has its own priority
and scheduling algorithm:
- foreground – RR
- background – FCFS
Multilevel Queues
 Scheduling must be done across
queues.
 Fixed priority scheduling; i.e.,
serve all from foreground then
from background.
 Time slice – each queue gets a
certain percentage of CPU time,
e.g., 80% to foreground in RR
and 20% to background in FCFS
Multilevel Queues
Multilevel Feedback
Queues
 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
Multilevel Feedback
Queues
 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
Multilevel Feedback
Queues
Download