Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

35
Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009 Dan C. Marinescu Email: [email protected] Office: HEC 439 B. Office hours: M, Wd 3 – 4:30 PM. TA: Chen Yu Email: yuchen@cs.ucf.edu Office: HEC 354. Office hours: M, Wd 1.00 – 3:00 PM. 1

description

Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009. Dan C. Marinescu Email: [email protected] Office: HEC 439 B. Office hours: M, Wd 3 – 4:30 PM. TA: Chen Yu Email: yuchen @cs.ucf.edu Office: HEC 354. Office hours: M, Wd 1.00 – 3:00 PM. - PowerPoint PPT Presentation

Transcript of Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Page 1: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Advanced Operating Systems - Spring 2009Lecture 13 – February 23, 2009Dan C. Marinescu

Email: [email protected]: HEC 439 B. Office hours: M, Wd 3 – 4:30 PM.

TA: Chen YuEmail: [email protected]: HEC 354. Office hours: M, Wd 1.00 – 3:00 PM.

1

Page 2: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Last, Current, Next Lecture Last time:

Birth-death processes M/M/1 systems

Today CPU Scheduling Scheduling Algorithms M/M/m systems

Next time: Caching and Virtual Memory

2

Page 3: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 4: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

DispatcherDispatcher module gives control of the CPU to the

process selected by the short-term scheduler; this involves:

switching context switching to user mode jumping to the proper location in the user program to

restart that program

Dispatch latency – time it takes for the dispatcher to stop one process and start another running

Page 5: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Performance metrics and objectivesPerformance metrics:

CPU Utilization Fraction of time CPU does useful work over total time

Throughput Number of jobs finished per unit of time Turnaround time Time spent by a job in the system Response time Time to get the results Waiting time Time waiting to start processing

All these are random variables we are interested in averages!!

The objectives of system managers (M) and users (U): Maximize CPU utilization M Maximize throughput M Minimize turnaround time U Minimize waiting time U Minimize response time U

Page 6: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

First-Come, First-Served (FCFS)Process Burst Time

P1 24

P2 3

P3 3

Processes arrive in the order: P1 P2 P3

Gantt Chart for the schedule:

Waiting time for P1 = 0; P2 = 24; P3 = 27Average waiting time: (0 + 24 + 27)/3 = 17Convoy effect short process behind long process

P1 P2 P3

24 27 300

Page 7: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

FCFS Scheduling (Cont’d.)

Now processes arrive in the order: P2 P3 P1 Gantt chart:

Waiting time for P1 = 6; P2 = 0; P3 = 3Average waiting time: (6 + 0 + 3)/3 = 3Much better!!

P1P3P2

63 300

Page 8: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Shortest-Job-First (SJF)

Use the length of the next CPU burst to schedule the process with the shortest time.

SJF is optimal minimum average waiting time for a given set of processes

Two schemes: Non-preemptive the process cannot be preempted

until completes its CPU burstPreemptive if a new process arrives with CPU burst

length less than remaining time of current executing process, preempt. known as Shortest-Remaining-Time-First (SRTF)

Page 9: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Non-preemptive SJF example

Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4SJF (non-preemptive)

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

P1 P3 P2

73 160

P4

8 12

Page 10: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Shortest-Remaining-Time-First (SRTF) (Preemptive SJF) example

Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4Shortest-Remaining-Time-First

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

P1 P3P2

42 110

P4

5 7

P2 P1

16

Page 11: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Estimating the length of next CPU burst

Done using the length of previous CPU bursts, using exponential averaging

10 , 3.

burst CPUnext for the valuepredicted 2.

burst CPU oflength actual 1.

1

n

thn nt

.1 1 nnn t

Page 12: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

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 -j + …

+(1 - )n +1 0

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

Page 13: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 14: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Priority schedulingEach process has a priority and the process with the

highest priority (smallest integer highest priority) is scheduled next.PreemptiveNon-preemptive

SJF is a priority scheduling where priority is the predicted next CPU burst time

Problem Starvation – low priority processes may never execute

Solution to sarvation Aging – as time progresses increase the priority of the process

Page 15: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Round Robin (RR)

Each process gets a small unit of CPU time (time quantum), usually 10-100 milliseconds. After this time 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.

Performanceq large FIFOq small q must be large with respect to context

switch, otherwise overhead is too high

Page 16: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

RR with time slice q = 20Process Burst Time

P1 53

P2 17

P3 68

P4 24

Typically, higher average turnaround than SJF, but better response

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Page 17: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 18: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 19: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Multilevel queueReady queue is partitioned into separate queues each with

its own scheduling algorithm : foreground (interactive) RR background (batch) FCFS

Scheduling between the queues Fixed priority scheduling - (i.e., 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 20: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 21: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Multilevel feedback queue

A process can move between the various queues; aging can be implemented this way

Multilevel-feedback-queue scheduler characterized by: number of queues scheduling algorithms for each queue strategy when to upgrade/demote a process strategy to decide the queue a process will enter when it

needs service

Page 22: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Multilevel feedback queue example

Three queues: Q0 – RR with time quantum 8 milliseconds

Q1 – RR 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 23: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009
Page 24: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Unix scheduler

The higher the number quantifying the priority the lower the actual process priority.

Priority = (recent CPU usage)/2 + baseRecent CPU usage how often the process has used

the CPU since the last time priorities were calculated.

Does this strategy raises or lowers the priority of a CPU-bound processes?

Example: base = 60Recent CPU usage: P1 =40, P2 =18, P3 = 10

Page 25: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Multiple-processor scheduling

CPU scheduling more complex when multiple CPUs are available

Homogeneous processors within a multiprocessorLoad sharing Asymmetric multiprocessing – only one processor

accesses the system data structures, alleviating the need for data sharing

Page 26: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Comparison of scheduling algorithmsRound Robin

FIFO MFQMulti-LevelFeedback Queue

SFJShortest Job First

SRJNShortest Remaining Job Next

Throughput

Responsetime

May be low is quantum is too small

Shortest average responsetime if quantum chosen correctly

Not emphasized

May be poor

May be low is quantum is too small

Good for I/O bound but poor for CPU-bound processes

High

Good for short processesBut maybe poor for longer processes

High

Good for short processesBut maybe poor for longer processes

Page 27: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Comparison of scheduling algorithms (cont’d)Round Robin

FIFO MFQMulti-LevelFeedback Queue

SFJShortest Job First

SRJNShortest Remaining Job Next

IO-bound

Infinite postponement

No distinctionbetweenCPU-bound andIO-bound

Does not occur

No distinctionbetweenCPU-bound andIO-bound

Does not occur

Gets a high priority if CPU-bound processes are present

May occur for CPU bound processes

No distinctionbetweenCPU-bound andIO-bound

May occur for processes with long estimated running times

No distinctionbetweenCPU-bound andIO-bound

May occur for processes with long estimated running times

Page 28: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Comparison of scheduling algorithms (cont’d)Round Robin

FIFO MFQMulti-LevelFeedback Queue

SFJShortest Job First

SRJNShortest Remaining Job Next

Overhead

CPU-bound

Low

No distinctionbetweenCPU-bound andIO-bound

The lowest

No distinctionbetweenCPU-bound andIO-bound

Can be high Complex data structures and processing routines

Gets a low priority if IO-bound processes are present

Can be high Routine to find to find the shortest job for each reschedule

No distinctionbetweenCPU-bound andIO-bound

Can be high Routine to find to find the minimum remaining time for each reschedule

No distinctionbetweenCPU-bound andIO-bound

Page 29: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Scheduling algorithms

A scheduling problems is defined by : The machine environment A set of side constrains and characteristics The optimality criterion

Machine environments: 1 One-machine. P Parallel identical machines Q Parallel machines of different speeds R Parallel unrelated machines O Open shop. m specialized machines; a job requires a

number of operations each demanding processing by a specific machine

F Floor shop

)()(

)(

),,(

Page 30: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

One-machine environment

n jobs 1,2,….n. pj amount of time required by job j.

rj the release time of job j, the time when job j is available for processing.

wj the weight of job j.

dj due time of job j; time job j should be completed.

A schedule S specifies for each job j which pj units of time are used to process the job.

CSj the completion time of job j under schedule S.

The makespan of S is: CSmax = max CS

j The average completion time is

n

j

SjCn 1

1

Page 31: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

One-machine environment (cont’d)

Average weighted completion time:Optimality criteria minimize:

the makespan CSmax

the average completion time :The average weighted completion time:

the lateness of job j maximum lateness of any

job under schedule S. Another optimality criteria, minimize maximum lateness.

n

j

SjjCw

1

n

j

SjC

1

n

j

SjjCw

1

Sj

nj LL 1max max j

Sjj dCL

Page 32: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Priority rules for one machine environmentTheorem: scheduling jobs according to SPT – shortest

processing time is optimal for

Theorem: scheduling jobs in non-decreasing order of is optimal for

jjCw||1 j

j

p

w

jC||1

Page 33: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Earliest deadline first (EDF)Dynamic scheduling algorithm for real-time OS. When a scheduling event occurs (task finishes, new

task released, etc.) the priority queue will be searched for the process closest to its deadline. This process will then be scheduled for execution next.

EDF is an optimal scheduling preemptive algorithm for uniprocessors, in the following sense: if a collection of independent jobs, each characterized by an arrival time, an execution requirement, and a deadline, can be scheduled (by any algorithm) such that all the jobs complete by their deadlines, the EDF will schedule this collection of jobs such that they all complete by their deadlines.

33

Page 34: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

EDF

34

11

n

j jp

djU

Process Execution Time Period

P1 1 8

P2 2 5

P3 4 10

The schedulability test for EDF is:

In this case U = 1/8 +2/5 + 4/10 = 0.925 = 92.5%

It has been proved that the problem of deciding if it is possible to schedule a set of periodic processes is NP-hard if the periodic processes use semaphores to enforce mutual exclusion.

Page 35: Advanced Operating Systems - Spring 2009 Lecture 13 – February 23, 2009

Priority InversionA high priority process is blocked by a lower

priority one.Example: J1 and J3 share a data structure

guarded by a binary semaphore S.prty(J1) > prty(J2) > prty(J3).J1 in initiated while J3 is in its critical sectionWhen J1 attempts to enter the critical section it is

blocked.The duration of this blocking cannot be determined

as because J3 can be preempted by a higher priority job J2. prty

35