wk 2 – scheduling 1 cs502 spring 2006 scheduling the art and science of allocating the cpu and...

18
Wk 2 – Scheduling 1 Scheduling The art and science of allocating the CPU and other resources to processes

Post on 21-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Wk 2 – Scheduling 1

Scheduling

The art and science of allocating the CPU and other resources to processes

Wk 2 – Scheduling 2

• Bursts of CPU usage alternate with periods of I/O wait– a CPU-bound process– an I/O bound process

• Which process should have higher CPU priority?• Which process should have higher I/O or disk priority?

Wk 2 – Scheduling 3

Process Scheduling

• When to run scheduler1. Process create2. Process exit3. Process blocks4. System interrupt

• Non-preemptive – process runs until it blocks or gives up CPU (1,2,3)

• Preemptive – process runs for some time unit, then scheduler selects a process to run (1-4)

Wk 2 – Scheduling 4

Scheduling - Policies

• Issues– Fairness – don’t starve process

– Priorities – most important first

– Deadlines – task X must be done by time t

– Optimization – e.g. throughput, response time

• Reality - No universal scheduling policy– Many models

– Determine what to optimize - metrics

– Select an appropriate one and adjust based on experience

Wk 2 – Scheduling 5

Process Scheduling – System Needs

Wk 2 – Scheduling 6

Scheduling - Metrics

• Simplicity – easy to implement• Job latency – time from start to completion• Interactive latency – time from action start to

expected system response• Throughput – number of jobs completed• Utilization – keep processor and subset of I/O

devices busy• Determinism – insure that jobs get done before

some time or event• Fairness – every job makes progress

Wk 2 – Scheduling 7

Batch System Scheduling

Note: Number of Processes in Memory determines the degree of multiprogramming

Wk 2 – Scheduling 8

Scheduling Policies - FCFS

• First Come, First Served (FCFS)– Easy to implement– Non-preemptive– Minimizes context switch overhead– Favors compute bound jobs– Short jobs penalized

Wk 2 – Scheduling 9

Scheduling Policies – Round Robin

• Round Robin (RR)– Preemptive– Ready processes given a quantum of time

when scheduled– Process runs until it blocks or quantum expires– Suitable for interactive (timesharing) systems– Setting quantum is critical for efficiency

Wk 2 – Scheduling 10

Scheduling Policies - Comparison

• 10 jobs each take 100 seconds - look at when jobs complete

• FCFS – job 1: 100s, job 2: 200s … job 10:1000s

• RR– 1 sec quantum– Job 1: 991s, job 2 : 992s …

• RR good for short jobs – worse for long jobs

Wk 2 – Scheduling 11

Scheduling Policies – RR example

• Utilization– A and B compute bound jobs - 100 ms @ 100% CPU

– C – 1 ms CPU and 10 ms disk I/O

– Quantum – 100 ms• CPU utilization = (100 + 100 +1)/210 = 95.7 %

– Quantum – 1 ms (assume 0 overhead)• ABCAB(C-I/O)ABABAB ….AB

• CPU utilization = 100%

– Smaller quantum can improve utilization – but consider overhead

Wk 2 – Scheduling 12

Scheduling Policies - STCF

• STCF – shortest time to completion first (or shortest job first)

– Can be preemptive– Good for throughput– Example

• jobs A – 100, B – 1, C – 2

• Done B – 1, C – 3 , A – 103

• Ave = 35, (for RR (1) about 37)

– Reality – knowledge of job runtime??

Wk 2 – Scheduling 13

Scheduling Policies - Priority

• Priority Scheduling– Preemptive– Process are given priorities and ranked

• Maybe done with multiple queues - multilevel

– Highest priority runs next• With multilevel queues

– Select from highest queue– Round robin within queue

– Recalculate priority – many algorithms• E.g. increase priority of I/O intensive jobs• E.g. favor processes in memory • Must still meet system goals – e.g. response time

Wk 2 – Scheduling 14

Scheduling Policy - Problems

• Priority inversion – A has high priority, B has lower priority and B

acquires a resources that A needs to progress– A attempts to get resources, fails and busy

waits; B never runs– A attempts to get resources, fails and blocks; C

(medium) enters system; B never runs

• Priority scheduling can’t be naive

Wk 2 – Scheduling 15

Scheduling Policies - Realtime

• Real Time System – processes have deadlines– Deadlines known

– (usually) preemptive

• Static algorithm – periodic process behavior– Rate Monotonic Scheduling (RMS) – priority =

1/period

• Dynamic – aperiodic– Earliest Deadline First (EDF) – select process that must

complete the soonest

Wk 2 – Scheduling 16

Scheduling - Examples

• Unix – multilevel - many policies and many policy changes over time

• Linux – multilevel – 3 major levels– Realtime FIFO

– Realtime round robin

– Timesharing

• Win/NT - multilevel– Threads scheduled – fibers not visible to scheduler

– Jobs – groups of processes are given quotas that contribute to priorities

Wk 2 – Scheduling 17

Scheduling

• Until now: focus on processes. Going forward: system resources – memory, storage, I/O

• Space sharing– How can resources be split up? – e.g. disk, memory

• Time sharing – What gets to use something and for how long?

– Whenever there are more requests than can be granted• Typically resource can not be divided – CPU, I/O port, …

• Interesting when can be cheaply preempted

Wk 2 – Scheduling 18

Scheduling• General theme – what is the “best way” to run n processes

on k cpu? ( k < n)• Conflicting Objectives – no one “best way”

– Latency vs. throughput– Speed vs. fairness

• Incomplete knowledge – E.g. – does user know how long a job will take

• Real world limitations– E.g. context switching takes CPU time– Job loads are unpredictable

• Bottom line – scheduling is hard– Know the models– Adjust based upon experience