os spring ’ 04 scheduling operating systems spring 2004

24
OS Spring’04 Scheduling Operating Systems Spring 2004

Post on 20-Dec-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Scheduling

Operating SystemsSpring 2004

Page 2: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Multiprogramming Multiprogramming: having multiple

jobs (processes) in the systemInterleaved (time sliced) on a single CPUConcurrently executed on multiple CPUsBoth of the above

Why multiprogramming?Responsiveness, utilization, concurrency

Why not?Overhead, complexity

Page 3: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

ResponsivenessJob 1arrives

Job 1terminates

Job1 Job2 Job3

Job 2terminates

Job 3terminates

Job 2arrives

Job 3arrives

Job1Job3

Job2

Job 1 terminates Job 3 terminates

Job 2 terminates

Page 4: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Utilization

idle

idle

idle

idle

idle

idle

1st I/Ooperation

I/Oends

2nd I/Ooperation

I/Oends

3rd I/Ooperation

CPU

Disk

CPU

Disk idle idle

idle

idleJob1 Job1

Job1 Job1Job2

Job2

Job2

Page 5: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Workload matters!? Does it really matter?Yes, of course:

If all jobs are CPU bound (I/O bound), multiprogramming does not help to improve utilization

A suitable job mix is created by a long-term scheduling

Jobs are classified on-line to be CPU (I/O) bound according to the job’s history

Page 6: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Concurrency Concurrent programming

Several process interact to work on the same problem ls –l | more

Simultaneous execution of related applications Word + Excel + PowerPoint

Background execution Polling/receiving Email while working on

smth else

Page 7: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

The cost of multiprogramming Switching overhead

Saving/restoring context wastes CPU cycles

Degrades performanceResource contentionCache misses

ComplexitySynchronization, concurrency control, deadlock avoidance/prevention

Page 8: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Short-Term Scheduling

running

ready blocked

created

schedule

preempt

event done

wait for event

terminated

Page 9: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Short-Term scheduling Process execution pattern consists

of alternating CPU cycle and I/O wait CPU burst – I/O burst – CPU burst – I/O

burst...

Processes ready for execution are hold in a ready (run) queue

STS schedules process from the ready queue once CPU becomes idle

Page 10: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Preemptive/non-preemptive Four events in which the scheduler may decide

to switch the CPU to a new processRunning process terminatesRunning process blocks (e.g., for I/O)Non-ready process becomes ready (or starts) Clock interrupt

The latter two cause preemption Advantages:

Better time sharing, responsivenessGuard against endless loops

Disadvantages:Higher programming complexity

Example: Unix disables interrupts within kernel modeDisrupts real-time

Page 11: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Metrics: Response time

Job arrives/becomes ready to run Starts running

Job terminates/blocks waiting for I/O

TwaitTrun

Tresp

Tresp= Twait + Trun

Response time (turnaround time) is the average over the jobs’Tresp

Page 12: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Metrics

Wait time: average of Twait

This parameter is under the system control

ThroughputNumber of complete process terminations within a time unit

Utilization Fraction of time CPU is utilized

Page 13: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Off-line vs. On-line scheduling Off-line algorithms

Get all the information about all the jobs to schedule as their inputOutputs the scheduling sequencePreemption is never needed

On-line algorithmsJobs arrive at unpredictable timesVery little info is available in advancePreemption compensates for lack of knowledge

Page 14: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

First-Come-First-Serve (FCFS) Schedules the jobs in the order in

which they arriveOff-line FCFS schedules in the order the jobs appear in the input

Runs each job to completion Both on-line and off-line Simple, a base case for analysis Poor response time

Page 15: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Shortest Job First (SJF) Best response time

Short Long job

Long job Short

Inherently off-lineAll the jobs and their run-times must be available in advance

Page 16: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Preemption Preemption is the action of stopping

a running job and scheduling another in its place

Context switch: Switching from one job to another

Page 17: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Using preemption On-line short-term scheduling algorithms

Adapting to changing conditions e.g., new jobs arrive

Compensating for lack of knowledge e.g., job run-time

Periodic preemption keeps system in control

Improves fairnessGives I/O bound processes chance to run

Page 18: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Shortest Remaining Time first (SRT)

Job run-times are known Job arrival times are not known When a new job arrives:

if its run-time is shorter than the remaining time of the currently executing job:preempt the currently executing job and schedule the newly arrived job

else, continue the current job and insert the new job into a sorted queue

When a job terminates, select the job at the queue head for execution

Page 19: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Round Robin (RR) Both job arrival times and job run-

times are not known Run each job cyclically for a short

time quantumApproximates CPU sharing

Job 1arrives

Job1 3

Job 2arrives

Job 3arrives

2 1 2 31 2 31 2 1 Job2

Job 3terminates

Job 1terminates

Job 2terminates

Page 20: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

ResponsivenessJob 1arrives

Job 1terminates

Job1 Job2 Job3

Job 2terminates

Job 3terminates

Job 2arrives

Job 3arrives

Job1Job3

Job2

Job 1 terminates Job 3 terminates

Job 2 terminates

Page 21: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Priority Scheduling Example: prioritize processes according

to their past CPU usageEquivalent to SJF with predicted next CPU burst time

16

1

8

1

4

1

2

1:

2

1

10 ,)1(

3211

1

nnnnn

nnn

TTTTE

ETE

Tn is the duration of the n-th CPU burst En+1 is the estimate of the next CPU burst

Page 22: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Multilevel feedback queues

quantum=10

quantum=20

quantum=40

FCFS

new jobs terminated

Page 23: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Multilevel feedback queues Priorities are implicit in this scheme Very flexible Starvation is possibleShort jobs keep arriving => long jobs

get starved Solutions:

Let it beAging

Page 24: OS Spring ’ 04 Scheduling Operating Systems Spring 2004

OS Spring’04

Real-life examples Solaris 2 Window 2000 Linux