dr. kalpakis cmsc 421, operating systems kalpakis/courses/421 cpu scheduling

42
Dr. Kalpakis CMSC 421, Operating Systems http://www.csee.umbc.edu/~kalpakis/Courses/421 CPU Scheduling

Upload: layne-farrin

Post on 29-Mar-2015

249 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

Dr. Kalpakis

CMSC 421, Operating Systems

http://www.csee.umbc.edu/~kalpakis/Courses/421

CPU Scheduling

Page 2: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

2

Outline

Basic Concepts

Scheduling Criteria

Scheduling Algorithms

Multiple-Processor Scheduling

Real-Time Scheduling

Algorithm Evaluation

Page 3: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

3

Basic Concepts

multiprogramming has been introduced in order to maximize

CPU utilization

CPU–I/O Burst Cycle

Process execution consists of a cycle of CPU execution and I/O wait.

CPU and I/O burst distribution

Can be viewed as a random variable

Can be characterized with an empirical and/or theoretical probability

distribution

Page 4: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

4

Alternating Sequence of CPU And I/O Bursts

Page 5: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

5

Histogram of CPU-burst Times

Page 6: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

6

CPU Scheduler

Selects from among the processes in memory that are ready to

execute, and allocates the CPU to one of them.

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.

Scheduling under 1 and 4 is nonpreemptive.

Once a process is given the CPU it holds it until it terminates or changes

state to waiting

All other scheduling is preemptive.

Page 7: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

7

Dispatcher

The Dispatcher module gives control of the CPU to the process

selected by the CPU (short-term) scheduler

The dispatcher’s function involves:

switching context

switching to user mode

jumping to the proper location in the user program to restart that

program

Dispatch latency

The time it takes for the dispatcher to stop one process and start running

running.

Page 8: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

8

Scheduling Algorithms

Before we look into scheduling algorithms need to set

Criteria (measures) and objectives that will be used in designing and

evaluating such algorithms

Scheduling algorithms should optimize some objectives derived

from certain criteria

Need to understand various properties of scheduling algorithms

so that we can choose an algorithm that is most suited to a

particular computing environment

Page 9: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

9

Scheduling Criteria

CPU utilization

Percent of time the CPU is busy executing processes

Throughput

number of processes that complete their execution per time unit

Turnaround time

amount of time to execute a particular process

Waiting time

amount of time a process has been waiting in the ready queue

Response time

amount of time it takes from when a request (program) was submitted until the first response is produced,

Does not include output time

Page 10: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

10

Optimization Objectives

Maximize CPU utilization

Maximize throughput

Minimize the maximum turnaround time

Minimize average waiting time

Minimize average response time

Minimize the variance of response time

Etc

We will consider

Minimizing the average waiting time

Page 11: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

11

First-Come First-Served (FCFS) Scheduling

Process requesting the CPU first gets it first

Simple to implement with a single FIFO queue of ready

processes

Link their PCB’s into that queue

Non-preemptive scheduling algorithm

Page 12: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

12

FCFS Scheduling Example

Process Burst Time

P1 24

P2 3

P3 3

Suppose that the processes arrive at time 0 in the order: P1 , P2 , P3

The Gantt Chart for the schedule is:

Waiting time for P1 = 0; P2 = 24; P3 = 27

Average waiting time: (0 + 24 + 27)/3 = 17

P1 P2 P3

24 27 300

Page 13: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

13

FCFS Scheduling Example

Suppose that the processes arrive in the order P2 , P3 , P1 .

The Gantt chart for the schedule is:

Waiting time for P1 = 6; P2 = 0; P3 = 3

Average waiting time: (6 + 0 + 3)/3 = 3

Average waiting time depends on order of processes in FIFO queue

Convoy effect Arises when a number of short (I/O bound) processes wait behind a long (CPU bound) process

P1P3P2

63 300

Page 14: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

14

Shortest-Job-First (SJF) Scheduling

Associate with each process the length of its next CPU burst.

Use these lengths to schedule the process with the shortest time.

Two schemes:

Non-preemptive

once the CPU is given to the process it cannot be preempted until completes

its CPU burst.

preemptive

if a new process arrives with CPU burst length less than the remaining time

of the current executing process, preempt it.

This scheme is known as the Shortest-Remaining-Time-First (SRTF).

SJF is optimal

It gives the minimum average waiting time for a given set of processes.

Page 15: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

15

Process Arrival Time Burst Time

P1 0 7

P2 2 4

P3 4 1

P4 5 4

SJF (non-preemptive)

Average waiting time = (0 + 6 + 3 + 7)/4 =4

Non-Preemptive SJF Example

P1 P3 P2

73 160

P4

8 12

Page 16: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

16

Preemptive SJF Example

Process Arrival Time Burst Time

P1 0 7

P2 2 4

P3 4 1

P4 5 4

SJF (preemptive)

Average waiting time = (9 + 1 + 0 +2)/4 =3

P1 P3P2

42 110

P4

5 7

P2 P1

16

Page 17: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

17

Difficulties with SJF

Length of next CPU burst is generally not known ahead of time

Can only estimate the length of the next CPU burst

Need appropriate estimating functions

Can be done by using the length of previous CPU bursts, using

exponential averaging.

:Define 4.

10 , 3.

burst CPU next the for value predicted 2.

burst CPU of lenght actual 1.

1n

thn nt

.1 1 nnn t

Page 18: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

18

Prediction of the Length of the Next CPU Burst

Page 19: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

19

Examples of Exponential Averaging

=0n+1 = n

Recent history does not count.

=1 n+1 = tn

Only the actual last CPU burst counts.

If we expand the formula, we get:n+1 = tn+(1 - ) tn -1 + …

+(1 - )j tn -1 + …

+(1 - )n=1 tn 0

Since both and (1 - ) are less than or equal to 1, each successive term has less weight than its predecessor.

Page 20: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

20

Priority Scheduling

A priority number (integer) is associated with each process

The CPU is allocated to the process with the highest priority

Here, we use the convention that smallest integer highest priority.

It can be

Preemptive

Non-preemptive

SJF is a priority scheduling where priority is determined by the predicted

next CPU burst time.

Can cause Starvation

A low priority processes may never execute

Aging is a technique that can be used to avoid starvation

as time progresses increase the priority of processes waiting for the CPU

Page 21: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

21

Round Robin (RR) Scheduling

Each process gets a small unit of CPU time (time quantum or slice), usually 10-100 milliseconds.

After this time slice has elapsed, the process is preempted and added to the end of the ready queue.

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.

When deciding on the time slice need to consider the overhead due to the dispatcher

Performance characteristics

q large FIFO

q small q must be large with respect to context switch, otherwise overhead is too high.

Page 22: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

22

RR Scheduling Example with Time Quantum = 20

Process Burst Time

P1 53

P2 17

P3 68

P4 24

The Gantt chart is:

Typically, higher average turnaround time than SJF, but better response time.

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Page 23: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

23

Time Quantum and Context Switch Time

Page 24: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

24

Turnaround Time Varies With The Time Quantum

Page 25: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

25

Multilevel Queue Scheduling

Ready queue is partitioned into separate queues

foreground (interactive)

background (batch)

Each queue has its own scheduling algorithm

foreground – RR

background – FCFS

Page 26: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

26

Multilevel Queue Scheduling

Page 27: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

27

Multilevel Queue Scheduling

Scheduling must be done between the queues.

Fixed priority scheduling

serve all from foreground then from background

Possibility of starvation.

Time slice

each queue gets a certain amount of CPU time which it can schedule

amongst its processes;

i.e., 80% to foreground in RR, 20% to background in FCFS

Page 28: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

28

Multilevel Feedback Queue Scheduling

A process can move between the various queues

aging can be implemented this way.

Multilevel-feedback-queue scheduler is defined by the

following parameters

number of queues

scheduling algorithms for each queue

method used to determine when to promote a process

method used to determine when to demote a process

method used to determine which queue a process will enter when that

process needs service

Page 29: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

29

Multilevel Feedback Queue Scheduling Example

Page 30: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

30

Multilevel Feedback Queue Scheduling Example

Three queues

Q0 – time quantum 8 milliseconds

Q1 – time quantum 16 milliseconds

Q2 – FCFS

Scheduling

A new job enters queue Q0 which 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.

At Q1 job is again served FCFS and receives 16 additional milliseconds.

If it still does not complete, it is preempted and moved to queue Q2.

Page 31: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

31

Multiple-Processor Scheduling

CPU scheduling is more complex when multiple CPUs are available.

Homogeneous processors

All processors are identical within the multiprocessor system

Load sharing

Idle processors share the load of busy processors

Maintain a single ready queue shared among all the processors

Symmetric multiprocessing

Each processor schedules a process autonomously from the shared ready queue

Asymmetric multiprocessing

only one processor accesses the system data structures, alleviating the need for

data sharing.

Page 32: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

32

Real-Time Scheduling

Hard real-time systems

When it is required to complete a critical task within a guaranteed

amount of time

Soft real-time computing

When it is required that critical processes receive priority over less

fortunate ones.

For soft real-time scheduling

System must have priority scheduling

The dispatch latency must be small

Problem caused by the fact that many OSs wait for a context switch until

either a system call completes or an I/O blocks

Page 33: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

33

Keeping the Dispatch Latency Small

Introduce preemption points within the kernel

Where it is safe to preempt a system call by a higher priority process

Trouble is only few such points can be practically added

Make the entire kernel preemptive

Need to ensure that it is safe for a higher priority process to access

shared kernel data structures

Complex method that is widely used

What happens when a high priority process waits for lower

priority processes to finish using a shared kernel data structure

(priority inversion)?

Priority inheritance

Page 34: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

34

Dispatch Latency

Page 35: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

35

Evaluating Scheduling Algorithms

Deterministic modeling

take a particular predetermined workload and determine the performance

of each algorithm for that workload

Queueing Models

Use mathematical formulas to analyze the performance of algorithms

under some (simple and possible unrealistic) workloads

Simulation Models

Use probabilistic models of workloads

Use workloads captured in a running system (traces)

Implementation

Page 36: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

36

Queueing Models

Assuming that

Process inter-arrival times and CPU burst times are independent

identical exponentially distributed random variables

FCFS scheduling

timed turnarounmean theis T where

: LawsLittle'

system thein procs# mean theis )1/(

system thein procs n ofy probabilit theis )1(

nutilizatio (CPU)server mean theis /

/1][ where1][

/1][ where1][

TN

N

P

tEetP

tEetP

nn

cpuburstcpuburst

arrivalarrival

Page 37: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

37

Evaluation of CPU Scheduling Algorithms by Simulation

Page 38: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

38

Solaris 2 Scheduling

Page 39: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

39

Windows 2000 Priorities

Page 40: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

40

Linux Scheduling

Two algorithms: time-sharing and real-timeTime-sharing

Prioritized credit-based – process with most credits is scheduled nextCredit subtracted when timer interrupt occursWhen credit = 0, another process chosenWhen all processes have credit = 0, recrediting occurs

Based on factors including priority and history

Real-timeSoft real-timePosix.1b compliant – two classes

FCFS and RRHighest priority process always runs first

Page 41: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

41

The Relationship Between Priorities and Time-slice length

Page 42: Dr. Kalpakis CMSC 421, Operating Systems kalpakis/Courses/421 CPU Scheduling

CMSC 421

42

List of Tasks Indexed According to Prorities