ECE/IUPUI RTOS & APPS 1
CPU Scheduling
Electrical and Computer Engineering Stephen Kim ([email protected])
CPU Scheduling
n
Basic Concepts
n
Scheduling Criteria
n
Scheduling Algorithms
n
Multiple-Processor Scheduling
n
Real-Time Scheduling
n
Algorithm Evaluation
ECE/IUPUI RTOS & APPS 3
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
Alternating Sequence of CPU And I/O Bursts
CPU Burst IO Burst
IO Request
IO Complete
ECE/IUPUI RTOS & APPS 5
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.
ECE/IUPUI RTOS & APPS 7
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.
ECE/IUPUI RTOS & APPS 9
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
ECE/IUPUI RTOS & APPS 11
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:
n Waiting time for P1= 0; P2= 24; P3 = 27
n Average waiting time: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 30
0
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order P
2, p
3, p
1.
n
The Gantt chart for the schedule is:
n
Waiting time for P
1= 6; P
2= 0
;P
3= 3
n
Average waiting time: (6 + 0 + 3)/3 = 3
n
Much better than previous case.
n
Convoy effect: short processes behind long process
P1 P3
P2
6
3 30
0
ECE/IUPUI RTOS & APPS 13
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.
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
n SJF (non-preemptive)
n Average waiting time = (0 + 6 + 3 + 7)/4 = 4
Example of Non-Preemptive SJF
P1 P3 P2
7
3 16
0
P4
8 12
ECE/IUPUI RTOS & APPS 15
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)
n Average waiting time = (9 + 1 + 0 +2)/4 = 3
n Even the SJF is optimal, it cannot be implemented because we cannot see future.
P1 P2 P3 P4
t
Predicting Length of Next CPU Burst
n
Can only estimate the length.
n
Can be done by using the length of previous CPU bursts, using exponential averaging.
1. tn= actual length of nth CPU burst
2. τn+1 = predicted value for the next CPU burst 3. 0≤α≤1
4. Define:
τn+1= αtn+ (1-α) τn
ECE/IUPUI RTOS & APPS 17
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= αtn+(1 -α) αtn-1 + … +(1 -α)j αtn-1 + … +(1 -α)n=1 tnτ0
n Since both α and (1 - α) are less than or equal to 1, each successive term has less weight than its predecessor.
ECE/IUPUI RTOS & APPS 19
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.
ECE/IUPUI RTOS & APPS 21
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.
Example of RR with Time Quantum = 4
Process Burst Time
P1 24
P2 3
P3 3
The Gantt chart is:
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.
P1 P2 P3 P1 P1 P1 P1 P1 P1
P2 P3 P1 P1 P1 P1 P1 RR
SJF
ECE/IUPUI RTOS & APPS 23
Time Quantum and Context Switch Time
n The average turnaround of RR is longer than SJF because CPU bursts of all processes interleave.
n But, better response.
Turnaround Time Varies With The Time
Quantum
ECE/IUPUI RTOS & APPS 25
Multilevel Queue
n Ready queue is partitioned into separate queues:
u foreground (interactive)
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
Is this true?
Multilevel Queue Scheduling
ECE/IUPUI RTOS & APPS 27
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
Example of Multilevel Feedback Queue
nThree queues:
u Q0– time quantum 8 milliseconds
u Q1– time quantum 16 milliseconds
u Q2– FCFS n Scheduling
u A new job enters queue Q0which 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.
u At Q1job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2.
ECE/IUPUI RTOS & APPS 29
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?
5 12
E
5 9
D
2 3
C
5 1
B
3 0
A
Processing Time Arrival Time
Prcess Name
ECE/IUPUI RTOS & APPS 31
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
Dispatch Latency
n The conflict phase consists of
Preemption of any process running in the kernel
Release by low-priority processes resources needed by the high-priority process.
n If the preemption is not allowed, the dispatch latency is quite long, so most of real-time OS’s support preemption.
ECE/IUPUI RTOS & APPS 33
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.
) 1 2 (
1/−
∑ ≤ n
i
i
n
T E
where Ei is the maximum execution time of task i, and Ti is the execution period of task i. Note that Ei is always smaller than Tiand Ei/Ticorresponds to the fraction of CPU time required to execute task i.
eg) 2(21/2-1)=0.828, 100(21/100-1)=0.695
If the system has 100 tasks, the total CPU utilization must be less than 69.5% to meet the real-time deadline.
ECE/IUPUI RTOS & APPS 35
n (2 1/n -1)
0 0.2 0.4 0.6 0.8 1 1.2
0 5 10 15 20 25 30 35
Example, RMS
n
Consider three periodic tasks, Task P
1: E
1=40, T
1=150, Task P
2: E
2=100, T
2=350, and Task P
3: E
3=20, T
3=100
n
What priorities will you assign to each task from 1 to 3? (The smaller number, the higher priority)
n