Professional Documents
Culture Documents
CPU Scheduling
n Basic Concepts
n Scheduling Criteria
n Scheduling Algorithms
n Multiple-Processor Scheduling
n Real-Time Scheduling
n Algorithm Evaluation
1
Basic Concepts
n Maximum CPU utilization obtained with
multiprogramming by making some process running at all
times.
n CPU Burst vs. I/O Burst – Process execution consists of a
cycle of CPU execution and I/O wait.
n CPU burst distribution
IO Request
IO Complete
2
Histogram of CPU-burst Times
n exponential or hyperexponential
n IO bound program – many very short CPU burst
eg.)
n CPU bound program – a few very long CPU burst
CPU Scheduler
n Selects from among the processes in memory that are
ready to execute, and allocates the CPU to one of them.
n 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.
n Scheduling under 1 and 4 is nonpreemptive. A new ready
process must be selected for execution.
n All other scheduling is preemptive.
3
Nonpreemptive vs. Preemptive
n Nonpreemptive
u A process keeps the CPU until it release the CPU either by
terminating, or by switching to the waiting state.
u eg) MS Windows 3.1, Apple Macintosh
t limited by hardware support.
n Preemptive
u A process can be interrupted any time.
u Possible Inconsistency
t A process can be interrupted while it modifies some data, which other
process tries to modify or read.
t Frequent between a system call and a user process.
t A simple solution is to disallow to interrupt in a kernel mode.
t The solution is not adequate for real-time systems.
Dispatcher
n Dispatcher module gives control of the CPU to the
process selected by the short-term scheduler; this
involves:
u switching context
u switching to user mode
u jumping to the proper location in the user program to
restart that program
n Dispatch latency – time it takes for the dispatcher
to stop one process and start another running.
4
Scheduling Criteria
n CPU utilization – keep the CPU as busy as possible. A
reasonable range is from 40% to 90%.
n Throughput – # of processes that complete their execution
per time unit.
n Turnaround time – amount of time to execute a particular
process from submission to completion.
n Waiting time – amount of time a process has been waiting
in the ready queue.
n 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).
Optimization Criteria
n What we want to
u Maximize CPU utilization
u Maximize throughput
u Minimize turnaround time
u Minimize waiting time
u Minimize response time
n In most cases
u optimize the average measure
n In the following, we will use the average waiting
time
5
First-come, First-served (FCFS)
Scheduling
Process Burst Time
P1 24
P2 3
P3 3
n 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
P2 P3 P1
0 3 6 30
6
Shortest-Job-First (SJR)
Scheduling
n Associate with each process the length of its next CPU
burst. Use these lengths to schedule the process with the
shortest time.
n Two schemes:
u nonpreemptive – once CPU given to the process, it cannot be
preempted until completes its CPU burst.
u preemptive – if a new process arrives with CPU burst length less
than remaining time of current executing process, preempt.
n SJF is optimal – gives minimum average waiting time for a
given set of processes.
0 3 7 8 12 16
7
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
n SJF (preemptive)
t
P1
P2
P3
P4
8
Predicting Length of Next CPU Burst,
cont
Examples of Exponential
Averaging
n α =0
u τn+1 = τn
u Recent history does not count.
n α =1
u τn+1 = tn
u Only the actual last CPU burst counts.
n If we expand the formula, we get:
τn+1 = α t n+(1 - α) α t n -1 + …
+(1 - α )j α t n -1 + …
+(1 - α )n=1 t n τ0
n Since both α and (1 - α) are less than or equal to 1, each
successive term has less weight than its predecessor.
9
Implementation Consideration
n The coefficient of exponential average is a floating number
n The computation of floating number is burden in designing
a kernel.
n Even worse, many microprocessor used for real-time
operating systems do not have floating point unit (FPU).
n What we can do for that type of processors?
Priority Scheduling
n A priority number (integer) is associated with each process
u UNIX: -20 (highest) to 19 (lowest), default is 10
u microC/OS-II: 0 (highest) to 63 (lowest)
n The CPU is allocated to the process with the highest
priority
u Preemptive
u nonpreemptive
n SJF is a priority scheduling where priority is the predicted
next CPU burst time.
n Starvation – low priority processes may never execute.
u Solution: Aging – as time progresses increase the priority of the
process.
10
Round Robin (RR)
n Each process gets a small unit of CPU time (time quantum
or time slice), usually 10-100 milliseconds. After this time
has elapsed, the process is preempted and added to the end
of the ready queue.
n 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.
n Performance
u q large ⇒ FIFO
u q small ⇒ q must be large with respect to context switch,
otherwise overhead is too high.
RR P1 P2 P3 P1 P1 P1 P1 P1
SJF P2 P3 P1 P1 P1 P1 P1 P1
n Average waiting time of RR = (6+4+7)/3=5.66
n Average waiting time of SJF = (6+0+3)/3=3
n The average waiting time of RR is often quite long.
11
Time Quantum and Context Switch
Time
12
Multilevel Queue
n Ready queue is partitioned into separate queues:
u foreground (interactive)
Is this true?
u background (batch)
n Each queue has its own scheduling algorithm,
u foreground – RR
u background – FCFS
n Scheduling must be done between the queues.
u Fixed priority scheduling; (i.e., serve all from foreground then
from background). Possibility of starvation.
u Time slice – each queue gets a certain amount of CPU time which
it can schedule amongst its processes; i.e.,
t 80% to foreground in RR
t 20% to background in FCFS
13
Multilevel Feedback Queue
Scheduling
n A process can move between the various queues
u If a process uses to much CPU time, it will be moved to a lower-
priority queue, but leaves IO-bound and interactive processes in
the higher priority queue.
u Aging can be implemented with the same way.
n Multilevel- feedback-queue scheduler defined by the
following parameters:
u number of queues
u scheduling algorithms for each queue
u method used to determine when to upgrade a process
u method used to determine when to demote a process
u method used to determine which queue a process will enter when
that process needs service
14
Multilevel Feedback Queues
Example, Scheduling
n For the given processes, answer the following question for
FCFS, SJF, RR(q=1), RR(q=4), 3Level Feedback(q=1),
and 3Level Feedback(q=1&2).
n What is the average waiting times for each scheduling?
n What is the turnaround time for each scheduling?
15
Real-time Scheduling
n Hard real-time systems – required to complete a critical
task within a guaranteed amount of time
n Soft real-time computing – requires that critical processes
receive priority over less fortunate ones
n Priority inversion
u When a higher-priority process needs to access kernel data
currently being accessed by another lower-priority process. The
higher-priority process must wait for the lower-priority process to
finish
u Solution: priority inheritance scheme
all processes accessing resources that a higher-priority process
needs, inherit the high priority until they are done with the
resources. When they are completed the resource access, their
priority reverts to its original value
ECE/IUPUI RTOS & APPS 31
Dispatch Latency
16
Rate Monotonic Scheduling
(RMS)
n In an RT system, how can we assign priorities to
critical tasks?
n Rate monotonic scheduling
u Task priorities are assigned based on how often tasks
executes
u Tasks with the highest rate of execution are given the
highest priority
u Assumption
t All tasks are periodic
t Tasks do not synchronize with one another, share resouces, or
exchange data
t OS supports preemption
RMS Theorem
n Given n tasks, all task hard real-time deadlines are
always met if the inequality hold.
Ei
∑T ≤ n(21/ n − 1)
i
17
n (21/n-1)
1.2
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35
Example, RMS
n Consider three periodic tasks,
Task P1: E1=40, T1=150,
Task P2: E2=100, T2=350, and
Task P3: E3=20, T3=100
n What priorities will you assign to each task from 1
to 3? (The smaller number, the higher priority)
n Can the tasks be scheduled in real-time?
18