chapter 9 uniprocessor scheduling spring, 2011 school of computer science & engineering...
TRANSCRIPT
Chapter 9Uniprocessor Scheduling
Spring, 2011
School of Computer Science & Engineering
Chung-Ang University
Aim of Processor Scheduling
• Assign processes to be executed by the processor(s) over time, in a way that meets system objectives such as– Response time– Throughput– Processor efficiency
2
Types of Scheduling
3
Scheduling and Process State Transitions
4
Levels of Scheduling
5
Long-Term Scheduling
• Performed when a new process is created• Determines which programs are admitted
to the system for processing• Controls the degree of multiprogramming• Two decisions
– When to take on one or more additional processes
– Which job(s) to accept and turn into processes
6
Medium-Term Scheduling
• Part of the swapping function• A decision whether to add a process to
those that are at least partially in main memory and therefore available for execution
• The swapping-in decision is based on the need to manage the degree of multiprogramming
7
Short-Term Scheduling
• Known as the dispatcher• Executes most frequently• Invoked whenever an event occurs that
may lead to the blocking of the current process– Clock interrupts– I/O interrupts– Operating system calls– Signals(e.g., semaphores)
8
Queuing Diagram
9
Short-Term Scheduling Criteria
• User-oriented : Response Time– Elapsed time between the submission of a
request until there is output– Maximize the number of users with average
response time of 2 sec. or less
• System-oriented : Throughput– Efficient utilization of the processor– Maximize the number of processes completed
per unit of time
10
Short-Term Scheduling Criteria
• Performance-related– Quantitative– Measurable such as response time and
throughput
• Not directly performance-related– Qualitative– Not readily measurable such as predictability
11
Scheduling Criteria
12
Scheduling Criteria
13
Priorities
• Scheduler will always choose a process of higher priority over one of lower priority
• Use multiple ready queues to represent multiple levels of priority
• Lower-priority may suffer starvation– Allow a process to change its priority based
on its age or execution history
14
Priority Queuing
15
Decision Mode
• Specifies the instances in time at which the selection function is excercised
• Nonpreemptive– Once a process is in the running state, it will
continue until it terminates or blocks itself for I/O or to request some OS service
16
Decision Mode
• Preemptive– Currently running process may be interrupted
and moved to the Ready state by the operating system
• When a new process arrives• When an interrupt occurs• Periodically, based on a clock interrupt
– Allows for better service since any one process cannot monopolize the processor for very long
17
Process Scheduling Example
18
First-Come-First-Served
• Each process joins the Ready queue• When the current process ceases to
execute, the process that has been in the Ready queue the longest is selected
19
First-Come-First-Served
• A short process may have to wait a very long time before it can execute
• Favors CPU-bound processes– Short I/O processes have to wait until a long
CPU-bound process completes
• Not an attractive alternative on its own, and so often combined with a priority scheme
20
Round Robin
• Uses preemption based on a clock
21
Round Robin
• A clock interrupt is generated at periodic intervals
• The principle design issue: the length of the time quantum
• When an interrupt occurs, the currently running process is placed in the ready queue– Next ready job is selected on a FCFS basis
• Known as time slicing22
Effect of Size of Preemption Time Quantum
23
Effect of Size of Preemption Time Quantum
24
Round Robin
• Particularly effective in a general-purpose time-sharing system or transaction processing system
• Processor-bound processes tend to receive an unfair portion of processor time– Poor performance for I/O-bound processes– Inefficient use of I/O devices– An increase in the variance of response time
• A VRR may avoid this unfairness25
Queuing Diagram
26
Shortest Process Next
• Nonpreemptive policy for reducing bias in favor of long processes
• Process with shortest expected processing time is selected next
• Short process jumps ahead of longer processes
27
Shortest Process Next• Overall performance is significantly
improved in terms of response time– However, the variability of response time
increases, especially for longer processes– Predictability of longer processes is reduced
• If the estimated time for process is substantially under the actual running time, the operating system may abort it
• The possibility of starvation for longer processes
28
Shortest Remaining Time• Preemptive version of SPN • Must estimate processing time• A risk of starvation of longer processes• Elapsed times must be recorded
29
Highest Response Ratio Next• Choose next process with the greatest ratio• Attractive because it accounts the age of
the process → A longer process will eventually get past competing shorter jobs
30
Feedback• Penalize jobs that have been running longer• If we don’t know remaining time to execute,
let’s focus on the time spent so far• Newer, shorter processes are favored over
older, longer processes
31
Feedback Scheduling
32
Scheduling Policies
33
Comparison of Scheduling Policies
34
Comparison of Scheduling Policies
35
Fair-Share Scheduling• User’s application runs as a collection of
processes (threads)• The concern is not how a particular process
performs but rather how his set of processes performs
• Need to make scheduling decisions based on process sets
• FSS monitors usage to give fewer resources to users who have had more than their fair share
36
Fair-Share Scheduler
37
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• The base priority divides all processes into
fixed bands of priority levels
38
Bands
• Decreasing order of priority– Swapper– Block I/O device control– File manipulation– Character I/O device control– User processes
39
Example of Traditional UNIX Process Scheduling
40