Chapter 9 Uniprocessor Scheduling Spring, 2011 School of Computer Science & Engineering...

Preview:

Citation preview

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

Recommended