Title: CPU%20Scheduling
1CPU Scheduling
- Scheduling the processor among all ready
processes - The goal is to achieve
- High processor utilization
- High throughput
- number of processes completed per of unit time
- Low response time
- time elapsed from the submission of a request
until the first response is produced
2Classification of Scheduling Activity
- Long-term which process to admit?
- Medium-term which process to swap in or out?
- Short-term which ready process to execute next?
3Queuing Diagram for Scheduling
4Long-Term Scheduling
- Determines which programs are admitted to the
system for processing - Controls the degree of multiprogramming
- Attempts to keep a balanced mix of
processor-bound and I/O-bound processes - CPU usage
- System performance
5Medium-Term Scheduling
- Makes swapping decisions based on the current
degree of multiprogramming - Controls which remains resident in memory and
which jobs must be swapped out to reduce degree
of multiprogramming
6Short-Term Scheduling
- Selects from among ready processes in memory
which one is to execute next - The selected process is allocated the CPU
- It is invoked on events that may lead to choose
another process for execution - Clock interrupts
- I/O interrupts
- Operating system calls and traps
- Signals
7Characterization of Scheduling Policies
- The selection function determines which ready
process is selected next for execution - The decision mode specifies the instants in time
the selection function is exercised - Nonpreemptive
- Once a process is in the running state, it will
continue until it terminates or blocks for an I/O - Preemptive
- Currently running process may be interrupted and
moved to the Ready state by the OS - Prevents one process from monopolizing the
processor
8Short-Term SchedulerDispatcher
- The dispatcher is the module that gives control
of the CPU to the process selected by the
short-term scheduler - The functions of the dispatcher include
- Switching context
- Switching to user mode
- Jumping to the location in the user program to
restart execution - The dispatch latency must be minimal
9The CPU-I/O Cycle
- Processes require alternate use of processor and
I/O in a repetitive fashion - Each cycle consist of a CPU burst followed by an
I/O burst - A process terminates on a CPU burst
- CPU-bound processes have longer CPU bursts than
I/O-bound processes
10Short-Tem Scheduling Criteria
- User-oriented criteria
- Response Time Elapsed time between the
submission of a request and the receipt of a
response - Turnaround Time Elapsed time between the
submission of a process to its completion - System-oriented criteria
- Processor utilization
- Throughput number of process completed per unit
time - fairness
11Scheduling Algorithms
- First-Come, First-Served Scheduling
- Shortest-Job-First Scheduling
- Also referred to asShortest Process Next
- Priority Scheduling
- Round-Robin Scheduling
- Multilevel Queue Scheduling
- Multilevel Feedback Queue Scheduling
12Process Mix Example
Arrival Time
Service Time
Process
1
0
3
2
2
6
3
4
4
4
6
5
5
8
2
Service time total processor time needed in one
(CPU-I/O) cycle Jobs with long service time are
CPU-bound jobs and are referred to as long jobs
13First Come First Served (FCFS)
- Selection function the process that has been
waiting the longest in the ready queue (hence,
FCFS) - Decision mode non-preemptive
- a process runs until it blocks for an I/O
14FCFS drawbacks
- Favors CPU-bound processes
- A CPU-bound process monopolizes the processor
- I/O-bound processes have to wait until completion
of CPU-bound process - I/O-bound processes may have to wait even after
their I/Os are completed (poor device
utilization) - Better I/O device utilization could be achieved
if I/O bound processes had higher priority
15Shortest Job First (Shortest Process Next)
- Selection function the process with the shortest
expected CPU burst time - I/O-bound processes will be selected first
- Decision mode non-preemptive
- The required processing time, i.e., the CPU burst
time, must be estimated for each process
16SJF / SPN Critique
- Possibility of starvation for longer processes
- Lack of preemption is not suitable in a time
sharing environment - SJF/SPN implicitly incorporates priorities
- Shortest jobs are given preferences
- CPU bound process have lower priority, but a
process doing no I/O could still monopolize the
CPU if it is the first to enter the system
17Is SJF/SPN optimal?
- If the metric is turnaround time (response time),
is SJF or FCFS better? - For FCFS, resp_time(39131820)/5 ?
- Note that Rfcfs 3(36)(364). ?
- For SJF, resp_time(39111520)/5 ?
- Note that Rfcfs 3(36)(364). ?
- Which one is smaller? Is this always the case?
18Is SJF/SPN optimal?
- Take each scheduling discipline, they both choose
the same subset of jobs (first k jobs). - At some point, each discipline chooses a
different job (FCFS chooses k1 SJF chooses k2) - RfcfsnR1(n-1)R2(n-k1)Rk1.(n-k2) Rk2.Rn
- RsjfnR1(n-1)R2(n-k2)Rk2.(n-k1) Rk1.Rn
- Which one is smaller? Rfcfs or Rsjf?
19Priorities
- Implemented by having multiple ready queues to
represent each level of priority - Scheduler the process of a higher priority over
one of lower priority - Lower-priority may suffer starvation
- To alleviate starvation allow dynamic priorities
- The priority of a process changes based on its
age or execution history
20Round-Robin
- Selection function same as FCFS
- Decision mode preemptive
- a process is allowed to run until the time slice
period (quantum, typically from 10 to 100 ms) has
expired - a clock interrupt occurs and the running process
is put on the ready queue
21RR Time Quantum
- Quantum must be substantially larger than the
time required to handle the clock interrupt and
dispatching - Quantum should be larger then the typical
interaction - but not much larger, to avoid penalizing I/O
bound processes
22RR Time Quantum
23Round Robin critique
- Still favors CPU-bound processes
- An I/O bound process uses the CPU for a time less
than the time quantum before it is blocked
waiting for an I/O - A CPU-bound process runs for all its time slice
and is put back into the ready queue - May unfairly get in front of blocked processes
24Multilevel Feedback Scheduling
- Preemptive scheduling with dynamic priorities
- N ready to execute queues with decreasing
priorities - P(RQ0) gt P(RQ1) gt ... gt P(RQN)
- Dispatcher selects a process for execution from
RQi only if RQi-1 to RQ0 are empty
25Multilevel Feedback Scheduling
- New process are placed in RQ0
- After the first quantum, they are moved to RQ1
after the first quantum, and to RQ2 after the
second quantum, and to RQN after the Nth
quantum - I/O-bound processes remain in higher priority
queues. - CPU-bound jobs drift downward.
- Hence, long jobs may starve
26Multiple Feedback Queues
- Different RQs may have different quantum values
27Time Quantum for feedback Scheduling
- With a fixed quantum time, the turn around time
of longer processes can be high - To alleviate this problem, the time quantum can
be increased based on the depth of the queue - Time quantum of RQi 2i-1
- May still cause longer processes to suffer
starvation. - Possible fix is to promote a process to higher
queue after some time
28Algorithm Comparison
- Which one is the best?
- The answer depends on many factors
- the system workload (extremely variable)
- hardware support for the dispatcher
- relative importance of performance criteria
(response time, CPU utilization, throughput...) - The evaluation method used (each has its
limitations...)
29Back to SJF CPU Burst Estimation
- Let Ti be the execution time for the ith
instance of this process the actual duration of
the ith CPU burst of this process - Let Si be the predicted value for the ith CPU
burst of this process. The simplest choice is - Sn1 (1/n)(T1Tn)(1/n)?_i1 to n Ti
- This can be more efficiently calculated as
- Sn1 (1/n) Tn ((n-1)/n) Sn
- This estimate, however, results in equal weight
for each instance
30Estimating the required CPU burst
- Recent instances are more likely to better
reflect future behavior - A common technique to factor the above
observation into the estimate is to use
exponential averaging - Sn1 ? Tn (1-?) Sn 0 lt ??lt 1
31CPU burst Estimate Exponential Average
- Recent instances have higher weights, whenever ?
gt 1/n - Expanding the estimated value shows that the
weights of past instances decrease exponentially - Sn1 ?Tn (1-?)?Tn-1 ...
(1-?)i?Tn-i - ... (1-?)nS1
- The predicted value of 1st instance, S1, is
usually set to 0 to give priority to to new
processes
32Exponentially Decreasing Coefficients
33Exponentially Decreasing Coefficients
- S1 0 to give high priority to new processes
- Exponential averaging tracks changes in process
behavior much faster than simple averaging