uniprocessor scheduling
DESCRIPTION
Uniprocessor Scheduling. Chapter 9. 1. CPU Scheduling. We concentrate on the problem of scheduling the usage of a single processor among all the existing processes in the system Assign processes to be executed by the processor. 2. Goals of Scheduling. High processor utilization - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/1.jpg)
1
Uniprocessor Scheduling
Chapter 9
![Page 2: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/2.jpg)
2
CPU Scheduling We concentrate on the problem of
scheduling the usage of a single processor among all the existing processes in the system
Assign processes to be executed by the processor
![Page 3: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/3.jpg)
3
Goals of Scheduling
High processor utilization High throughput
number of processes completed per unit time Low response time
time elapse from the submission of a request to the beginning of the response
![Page 4: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/4.jpg)
4
Types of Scheduling
![Page 5: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/5.jpg)
5
Long-Term Scheduling Determines which programs are admitted
to the system for processing Controls the degree of multiprogramming If more processes are admitted
less likely that all processes will be blocked better CPU usage
each process has less fraction of the CPU The long term scheduler may attempt to
keep a mix of processor-bound and I/O-bound processes
![Page 6: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/6.jpg)
6
Medium-Term Scheduling
Swapping decisions based on the need to manage multiprogramming
Closely related to memory management software and discussed intensively in chapter 8 see resident set allocation and load control
![Page 7: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/7.jpg)
7
Short-Term Scheduling Determines which process is going to execute
next (also called CPU scheduling) Is the subject of this chapter The short term scheduler is known as the
dispatcher Executes most frequently Is invoked on a event that may lead to choose
another process for execution: clock interrupts, time quantum expires I/O interrupts operating system calls and traps signals
![Page 8: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/8.jpg)
8
Scheduling and Process State Transitions
Long-term: which process to admitMedium-term: which process to swap in or outShort-term: which ready process to execute next
![Page 9: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/9.jpg)
9
Scheduling and Process State Transitions
Long-term: which process to admitMedium-term: which process to swap in or outShort-term: which ready process to execute next
![Page 10: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/10.jpg)
10
Scheduling and Process State Transitions
Long-term: which process to admitMedium-term: which process to swap in or outShort-term: which ready process to execute next
![Page 11: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/11.jpg)
11
Scheduling and Process State Transitions
Long-term: which process to admitMedium-term: which process to swap in or outShort-term: which ready process to execute next
![Page 12: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/12.jpg)
12
Levels of Scheduling
![Page 13: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/13.jpg)
13
Short-Term Scheduling Criteria
User Oriented Criteria Takes into account individual users
System Oriented Criteria Takes into account the system as a whole
![Page 14: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/14.jpg)
14
Short-Term Scheduling Criteria
Performance-related Quantitative Measurable such as response time and
throughput
![Page 15: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/15.jpg)
15
Short-Term Scheduling Criteria
Performance-related Quantitative Measurable such as response time and
throughput Other
Qualitative Difficult to measure
![Page 16: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/16.jpg)
16
Scheduling Criteria
![Page 17: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/17.jpg)
17
Scheduling Criteria
![Page 18: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/18.jpg)
18
Priorities Implemented by having multiple ready
queues to represent each level of priority Scheduler will usually choose a process of
higher priority over one of lower priority Lower-priority may suffer starvation
Allow a process to change its priority based on its age or execution history
Our first scheduling algorithms will not make use of priorities
We will then present other algorithms that use dynamic priority mechanisms
![Page 19: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/19.jpg)
19
Priority Queuing Diagram
![Page 20: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/20.jpg)
20
Characterization of Scheduling Policies The selection function: determines which process in
the ready queue is selected next for execution The decision mode: specifies the instances in time at
which the selection function is exercised Nonpreemptive
Once a process is in the running state, it will continue until it terminates or blocks itself for I/O
Preemptive Currently running process may be interrupted and
moved to the Ready state by the OS Allows for better service since any one process
cannot monopolize the processor for very long
![Page 21: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/21.jpg)
21
Our running example to discuss various scheduling policies
ProcessArrivalTime
ServiceTime
1
2
3
4
5
0
2
4
6
8
3
6
4
5
2
Service time = total processor time needed
Jobs with long service time are CPU-bound jobs and are referred to as “long jobs”
![Page 22: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/22.jpg)
22
First Come First Served (FCFS)
Selection function: the process that has been waiting the longest in the ready queue (hence, FCFS)
Decision mode: nonpreemptive a process run until it blocks itself
![Page 23: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/23.jpg)
23
First Come First Served (FCFS)
Selection function: the process that has been waiting the longest in the ready queue (hence, FCFS)
Decision mode: nonpreemptive a process run until it blocks itself
![Page 24: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/24.jpg)
24
First Come First Served (FCFS)
Selection function: the process that has been waiting the longest in the ready queue (hence, FCFS)
Decision mode: nonpreemptive a process run until it blocks itself
![Page 25: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/25.jpg)
25
FCFS drawbacks A process that does not perform any I/O will
monopolize the processor Starvation may occur or long response time for some
processes Throughput may be low, even though utilization could
be high Favors CPU-bound processes
I/O-bound processes have to wait until CPU-bound process completes
They may have to wait even when their I/O are completed (poor device utilization)
we could have kept the I/O devices busy by giving a bit more priority to I/O bound processes
![Page 26: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/26.jpg)
26
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
then a clock interrupt occurs and the running process is put on the ready queue
Known as time slicing
Round-Robin
![Page 27: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/27.jpg)
27
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
then a clock interrupt occurs and the running process is put on the ready queue
Known as time slicing
Round-Robin
![Page 28: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/28.jpg)
28
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
then a clock interrupt occurs and the running process is put on the ready queue
Known as time slicing
Round-Robin
![Page 29: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/29.jpg)
29
Time Quantum for Round Robin must be substantially larger than the time required to
handle the clock interrupt and dispatching should be larger then the typical interaction (but not
much more to avoid penalizing I/O bound processes)
![Page 30: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/30.jpg)
30
Round Robin: critique Still favors CPU-bound processes
A I/O bound process uses the CPU for a time less than the time quantum and then is blocked waiting for I/O
A CPU-bound process run for all its time slice and is put back into the ready queue (thus getting in front of blocked processes)
A solution: virtual round robin When a I/O has completed, the blocked process is
moved to an auxiliary queue which gets preference over the main ready queue
A process dispatched from the auxiliary queue runs no longer than the basic time quantum minus the time spent running since it was selected from the ready queue
![Page 31: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/31.jpg)
31
Virtual Round-Robin Diagram
![Page 32: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/32.jpg)
32
Virtual Round-Robin Diagram
![Page 33: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/33.jpg)
33
Virtual Round-Robin Diagram
![Page 34: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/34.jpg)
34
Virtual Round-Robin Diagram
![Page 35: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/35.jpg)
35
Virtual Round-Robin Diagram
![Page 36: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/36.jpg)
36
Shortest Process Next (SPN)
Selection function: the process with the shortest expected CPU burst time
Decision mode: nonpreemptive I/O bound or short processes will be picked first
Possibility of starvation for longer processes We need to estimate the required processing time
(CPU burst time) for each process
![Page 37: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/37.jpg)
37
Estimating the required CPU burst Let T[i] be the execution time for the ith
instance of this process: the actual duration of the ith CPU burst of this process
Let S[i] be the predicted value for the ith CPU burst of this process. The simplest choice is: S[n+1] = (1/n) _{i=1 to n} T[i]
To avoid recalculating the entire sum we can rewrite this as: S[n+1] = (1/n) T[n] + ((n-1)/n) S[n]
But this convex combination gives equal weight to each instance
![Page 38: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/38.jpg)
38
Estimating the required CPU burst But recent instances are more likely to reflect
future behavior A common technique for that is to use
exponential (moving) averaging S[n+1] = T[n] + (1-) S[n] ; 0 < < 1 more weight is put on recent instances whenever
> 1/n By expanding this eqn, we see that weights of
past instances are decreasing exponentially S[n+1] = T[n] + (1-)T[n-1] + ... (1-)^{i}T[n-i] + ... + (1-)^{n}S[1] predicted value of 1st instance S[1] is not calculated;
usually set to 0 to give priority to to new processes
![Page 39: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/39.jpg)
39
Exponentially Decreasing Coefficients
![Page 40: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/40.jpg)
40
Use Of Exponential Averaging
• Here S[1] = 0 to give high priority to new processes• Exponential averaging tracks changes in process behavior much faster
than simple averaging
![Page 41: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/41.jpg)
41
Shortest Process Next: critique Possibility of starvation for longer processes as
long as there is a steady supply of shorter processes
Lack of preemption is not suited in a time sharing environment CPU bound process gets lower priority (as it
should) but a process doing no I/O could still monopolize the CPU if he is the first one to enter the system
SPN implicitly incorporates priorities: shortest jobs are given preferences
Preemptive version: Shortest Time Remaining
![Page 42: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/42.jpg)
42
Multilevel Feedback Scheduling Preemptive scheduling with dynamic priorities Several ready to execute queues with decreasing
priorities: P(RQ0) > P(RQ1) > ... > P(RQn)
New processes are placed in RQ0 When they reach the time quantum, they are placed
in RQ1. If they reach it again, they are placed in RQ2... until they reach RQn
I/O-bound processes will stay in higher priority queues. CPU-bound jobs will drift downward.
Dispatcher chooses a process for execution in RQi only if RQi-1 to RQ0 are empty
Hence long jobs may starve
![Page 43: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/43.jpg)
43
Multiple Feedback Queues
FCFS is used in each queue except for lowest priority queue where Round Robin is used
![Page 44: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/44.jpg)
44
Time Quantum for feedback Scheduling
With a fixed quantum time, the turnaround time of longer processes can stretch out alarmingly
To compensate we can increase the time quantum according to the depth of the queue Ex: time quantum of RQi = 2^{i-1}
Longer processes may still suffer starvation. Possible fix: promote a process to higher priority after some time
![Page 45: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/45.jpg)
45
Algorithm Comparison
Which one is best? The answer depends on:
on the system workload (extremely variable) hardware support for the dispatcher relative weighting of performance criteria
(response time, CPU utilization, throughput...) The evaluation method used (each has its
limitations...) Hence the answer depends on too many
factors to give any...
![Page 46: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/46.jpg)
46
Fair Share Scheduling Previous algorithms treat all processes
individually In a multiuser system, each user can own
several processes (threads) Users belong to groups and each group
should have its fair share of the CPU This is the philosophy of fair share
scheduling Ex: If there are four groups, we could
allocate 25% of processor to each (even if they have different number of processes)
![Page 47: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/47.jpg)
47
The Fair Share Scheduler (FSS) Has been implemented on some Unix OS Processes are divided into groups Need to make scheduling decisions based on
process sets Group k has a fraction Wk of the CPU The priority Pj[i] of process j (belonging to group k) at time
interval i is given by: Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk)
A high value means a low priority Process with highest priority is executed next Bj = base priority of process j CPUj[i] = Exponentially weighted average of processor
usage by process j in time interval i GCPUk[i] = Exponentially weighted average processor
usage by group k in time interval i
![Page 48: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/48.jpg)
48
The Fair Share Scheduler (FSS) The exponentially weighted averages use = 1/2:
CPUj[i] = (1/2) Uj[i-1] + (1/2) CPUj[i-1] GCPUk[i] = (1/2) GUk[i-1] + (1/2) GCPUk[i-1] where
Uj[i] = processor usage by process j in interval i GUk[i] = processor usage by group k in interval i
Recall that Pj[i] = Bj + (1/2) CPUj[i-1] + GCPUk[i-1]/(4Wk)
The priority decreases as the process and group use the processor
With more weight Wk, group usage decreases the priority
![Page 49: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/49.jpg)
49
Fair-Share Scheduler
![Page 50: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/50.jpg)
50
Fair-Share Scheduler
![Page 51: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/51.jpg)
51
Fair-Share Scheduler
![Page 52: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/52.jpg)
52
Fair-Share Scheduler
![Page 53: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/53.jpg)
53
Fair-Share Scheduler
![Page 54: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/54.jpg)
54
Fair-Share Scheduler
![Page 55: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/55.jpg)
55
Traditional UNIX Scheduling
Multilevel feedback using round robin within each of the priority queues
If a running process does not block or complete within 1 second, it is preempted
Priorities are recomputed once per second Base priority divides all processes into fixed
bands of priority levels
![Page 56: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/56.jpg)
56
Bands
Decreasing order of priority Swapper Block I/O device control File manipulation Character I/O device control User processes
![Page 57: Uniprocessor Scheduling](https://reader035.vdocuments.us/reader035/viewer/2022062411/568166c8550346895ddad605/html5/thumbnails/57.jpg)
57
Summary
3 types of scheduling Long-term Medium-term Short-term
Short-term Algorithms FCFC, round robin, SPN, multilevel feedback, fair
share Each system can have different criteria and
require a different algorithm