4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 -...

43
Principles of Operating Systems CS 446/646 4. CPU Scheduling René Doursat Department of Computer Science & Engineering University of Nevada, Reno Spring 2006

Transcript of 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 -...

Page 1: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Principles of Operating SystemsCS 446/646

4. CPU Scheduling

René Doursat

Department of Computer Science & EngineeringUniversity of Nevada, Reno

Spring 2006

Page 2: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2

Principles of Operating SystemsCS 446/646

0. Course Presentation

1. Introduction to Operating Systems

2. Processes

3. Memory Management

4. CPU Scheduling

5. Input/Output

6. File System

7. Case Studies

Page 3: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 3

Principles of Operating SystemsCS 446/646

4. CPU Schedulinga. Concepts of Scheduling

b. Scheduling Algorithms

c. Queuing Analysis

d. Thread Scheduling

Page 4: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 4

Principles of Operating SystemsCS 446/646

4. CPU Schedulinga. Concepts of Scheduling

Three-level schedulingPurpose of CPU scheduling

b. Scheduling Algorithms

c. Queuing Analysis

d. Thread Scheduling

Page 5: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 5

4.a Concepts of SchedulingThree-level scheduling

Long-term scheduling (mostly in batch)the decision to add a program to the pool of processes to be executed: controls the degree of multiprogramming

frequ

ency

of in

terve

ntion

fine-

to co

arse

-gra

in tim

e sca

le

Medium-term schedulingthe decision to add to the number of processes that are partially or fully in main memory (“swapping”)not the same as paging: swapping out means removing all the pages of a process

Short-term scheduling = CPU schedulingthe decision as to which available processes in memory are to be executed by the processor (“dispatching”)

Page 6: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 6

4.a Concepts of SchedulingThree-level scheduling

Three-level scheduling

LONG-TERM MID-TERM

SHORT-TERM

Tanenbaum, A. S. (2001)Modern Operating Systems (2nd Edition).

Three-level scheduling

Page 7: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 7

4.a Concepts of SchedulingThree-level scheduling

Reminder: process states

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

Transition diagram of a seven-state modelprogram is

on disk

Blocked

Ready Running ExitNewdispatch

timeout

eventwait

eventoccurs

admit release

SuspendedReady

activ

ate

eventoccurs

susp

end

activ

ate

susp

end

admit

SuspendedBlocked

program isin memory

Page 8: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 8

4.a Concepts of SchedulingThree-level scheduling

In the O/S, the CPU scheduler decides which “Ready” process to run next (and which “Running” to time out)

the discipline it follows is the scheduling algorithm

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

Transition diagram of a seven-state modelprogram is

on disk

Blocked

Ready Running ExitNew

SuspendedReady

SuspendedBlocked

program isin memory

SHORT-TERM

LONG-TERM

MID-TERM

Page 9: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Queuing diagram for scheduling

General queuing system for schedulingin most algorithms, queues are not strictly FIFO: rather “pools”

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

4.a Concepts of SchedulingThree-level scheduling

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 9

Page 10: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 10

4.a Concepts of SchedulingPurpose of CPU scheduling

Why scheduling matters: user service responseexample: choosing between

a process that updates the screen after the user has closed a window a process that sends out queued email

taking 2 seconds to close the window while sending the email would be unacceptableon the other hand, delaying the email while closing the window would hardly be noticed

→ schedule wisely to match user’s expectations

Page 11: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 11

4.a Concepts of SchedulingPurpose of CPU scheduling

Why scheduling matters: CPU usageswitching processes (contexts) is heavy

switch from user mode to kernel mode CPU state must be savedprocess state must be savedpages and page bits must be saved MMU must be reloaded with new page tableetc.

→ to maximize CPU utilization, interleave but at the same time minimize process switches

Page 12: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

4.a Concepts of SchedulingPurpose of CPU scheduling

Types of process behavior: CPU-I/O burst cycleprocesses alternate CPU usage with I/O wait

compute-bound processes have long CPU bursts and infrequent I/OI/O-bound processes have short CPU bursts and frequent I/O

(a) Compute-bound process vs. (b) I/O-bound process

Tanenbaum, A. S. (2001)Modern Operating Systems (2nd Edition).

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 12

Page 13: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

4.a Concepts of SchedulingPurpose of CPU scheduling

Typical histogram of CPU-burst timesSilberschatz, A., Galvin, P. B. and Gagne. G. (2003)Operating Systems Concepts with Java (6th Edition).

Types of process behavior: CPU-I/O burst cyclepower-law: large # of short CPU bursts, small # of large bursts

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 13

Page 14: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 14

4.a Concepts of SchedulingPurpose of CPU scheduling

I/O-bound processesas CPU speeds increase, processes generally tend to become more and more I/O-boundthe scheduling of I/O-bound processes will likely become an important subject in the future

→ basic idea: an I/O-bound process that is “Ready” to run should get the CPU quickly so it can keep the disk busy

Page 15: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 15

4.a Concepts of SchedulingPurpose of CPU scheduling

When scheduling decisions must be madewhen a new process is created — run the child or the parent?when a process exits — who’s next?when an I/O interrupt occurs upon finishing an I/O task —should the waiting process be rescheduled? or let the currently running process continue? or pick another process? etc.when a timeout (clock interrupt) occurs — who’s next?

Page 16: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 16

4.a Concepts of SchedulingPurpose of CPU scheduling

Two kinds of CPU-scheduling algorithmscooperative scheduling — let a process run until it blocks on I/O, terminates or voluntarily releases the CPU (system call)

Ready Running

Blocked

Ready Running

Blocked

preemptive scheduling — follow clock interrupts (ex: 50Hz) to forcibly switch processes (demote the “Running” to “Ready”)

Page 17: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 17

4.a Concepts of SchedulingPurpose of CPU scheduling

Scheduling algorithm goals — all systems (batch & int.)fairness — comparable processes get comparable servicecompliance to system’s policy — ex: high-priority override low-priority processes (ex: safety control vs. payroll in a nuclear plant)keep system busy — CPU and I/O devices should be utilized fully

if all CPU-bound were run first: fight for CPU, I/O idlethen all I/O-bound were run: fight for I/O, CPU idle

→ keep a well-balanced mix of CPU-bound and I/O-bound processes, so they can fill in for each other

Page 18: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 18

4.a Concepts of SchedulingPurpose of CPU scheduling

Scheduling algorithm goals — batch systemsthroughput — maximize # of completed jobs per time unitturnaround time (latency) — minimize time between submission and termination of job

high throughput and low turnaround are rarely compatiblefor ex: supply of short jobs scheduled in front of long jobs: good throughput, bad turnaround time for long jobs

#5 executed

throughput

turnaround time for #5

#5 arrivedArrival times

Execution times

Page 19: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 19

4.a Concepts of SchedulingPurpose of CPU scheduling

Scheduling algorithm goals — interactive systemsresponse time — respond to requests quickly: minimize time between issuing command and getting result

ex: a user request to start a new program should take precedence over background workhaving interactive requests go first will be perceived as good service

proportionality time — meet users’ expectation, even if irrational

ex: 45 seconds to establish a modem connection is perceived as acceptable, yet 45 seconds to hang up is notwhenever possible, take this into account when scheduling

Page 20: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

4.a Concepts of SchedulingPurpose of CPU scheduling

Scheduling algorithm goals — summary

Tanenbaum, A. S. (2001)Modern Operating Systems (2nd Edition).

Some goals of CPU scheduling under different circumstances3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 20

Page 21: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 21

Principles of Operating SystemsCS 446/646

4. CPU Schedulinga. Concepts of Scheduling

Three-level schedulingPurpose of CPU scheduling

b. Scheduling Algorithms

c. Queuing Analysis

d. Thread Scheduling

Page 22: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 22

Principles of Operating SystemsCS 446/646

4. CPU Schedulinga. Concepts of Scheduling

b. Scheduling AlgorithmsScheduling in batch systemsScheduling in interactive systems

c. Queuing Analysis

d. Thread Scheduling

Page 23: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 23

4.b Scheduling AlgorithmsScheduling in batch systems

Scheduling metricsarrival time ta = time the process became “Ready” (again)wait time Tw = time spent waiting for the CPUservice time Ts = time spent executing in the CPUturnaround time Tr = total time spent waiting and executing

#5 executedTr

#5 arrivedArrival times

Execution times

= Tw + Ts

TsTw

Tr / Ts = 2.5

ta

Page 24: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

A B C D E Mean

FCFS scheduling policy

First-Come-First-Served (FCFS)processes are assigned the CPU in the order they request itwhen the running process blocks, the first “Ready” is run nextwhen a process gets “Ready”, it is put at the end of the queue

4.b Scheduling AlgorithmsScheduling in batch systems

AB

CD

E

Arrival times

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

A B C D E Mean

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 24

Page 25: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 25

4.b Scheduling AlgorithmsScheduling in batch systems

First-Come-First-Served (FCFS)nonpreemptive, oldest and simplest to programapparently “fair” but very inefficient; example:

a CPU-bound process runs 1 sec, then reads 1 disk blockseveral I/O-bound processes run little CPU, but must read 1000 disk blocks

1 sec

because of the CPU-bound, one I/O-bound will take 1000 seconds

CPU-bound

I/O-boundprocesses

. . .

→ preempt the CPU-bound more often to let the I/O-bound progress

Page 26: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 26

4.b Scheduling AlgorithmsScheduling in batch systems

by preempting the CPU-bound every 10ms (100 Hz), each I/O-bound nowtakes only 10 seconds (without bothering the CPU-bound too much ~10s)

CPU-bound

I/O-boundprocesses . . .

interleaving’s squeeze

→ see preemptive algorithms (Round-Robin, etc.) in later sections

Page 27: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

SJF scheduling policy

Shortest Job First (SJF)nonpreemptive, assumes the run times are known in advanceamong several equally important “Ready” jobs (or CPU bursts), the scheduler picks the one that will finish the earliest

4.b Scheduling AlgorithmsScheduling in batch systems

Shortest Job First (SJF)

A B C D E MeanSJF

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 27

Page 28: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 28

4.b Scheduling AlgorithmsScheduling in batch systems

Shortest Job First (SJF)example:

a) turnaround times Tr = 8, 12, 16, 20 → mean Tr = 14b) turnaround times Tr = 4, 8, 12, 20 → mean Tr = 11

no SJF SJF

SJF is optimal among jobs available immediately; proof:generally, with service times Ts = a, b, c, d the mean turnaround time is: Tr = (4a + 3b + 2c + d) / 4, therefore it is always better to schedule the longest process (d) last

however, being non-preemptive, SJF does not deal well with jobs arriving subsequently (ex: 2,4,1,1,1 arriving at 0,0,3,3,3)

Page 29: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

A B C D E Mean

SRT scheduling policy

Shortest Remaining Time (SRT)preemptive version of SJF, also assumes known run timechoose the process whose remaining run time is shortestallows new short jobs to get good service

4.b Scheduling AlgorithmsScheduling in batch systems

AB

CD

E

Arrival times

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 29

Page 30: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

RR (q = 1) scheduling policy

Round-Robin (RR)preemptive FCFS, based on a timeout interval, the quantum qthe running process is interrupted by the clock and put last in a FIFO “Ready” queue; then, the first “Ready” process is run instead

4.b Scheduling AlgorithmsScheduling in interactive systems

A B C D E Mean

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 30

Page 31: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

RR (q = 4) scheduling policy

Round-Robin (RR)a crucial parameter is the quantum q (generally ~10–100ms)

q should be big compared to context switch latency (~10µs)q should be less than the longest CPU bursts, otherwise RR degenerates to FCFS → typically at 80% of the distrib. tail

4.b Scheduling AlgorithmsScheduling in interactive systems

A B C D E Mean

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 31

Page 32: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

SPN scheduling policy

Shortest Process Next (SPN)same as SJF: pick the one that should finish the earliest

→ difference in the interactive system: the prediction about future duration is not known but estimated from past durations

4.b Scheduling AlgorithmsScheduling in interactive systems

Shortest Process Next (SPN)

A B C D E Mean

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 32

Page 33: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 33

4.b Scheduling AlgorithmsScheduling in interactive systems

Estimation of processing time from pastpredicted service time = simple averaging of past run times

S(n + 1) = (1 / n) ∑ T(i)⇔ S(n + 1) = T(n) / n + (1 – 1/ n) S(n)

exponential averaging, also called “aging”S(n + 1) = α T(n) + (1 – α) S(n), 0 < α ≤ 1high α forgets past runs quicklylow α remembers past runs for a long time

Page 34: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Estimation of processing time from past“aging” tracks changes in process behavior faster than the mean

4.b Scheduling AlgorithmsScheduling in interactive systems

Example of exponential averaging in duration estimation Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 34

Page 35: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

HRRN scheduling policy

Highest Response Ratio Next (HRRN)minimize the normalized turnaround time Tr / Ts

→ compromise between FCFS, which favors long processes, and SPN, which favors short processes

4.b Scheduling AlgorithmsScheduling in interactive systems

A B C D E Mean

AB

CD

E

Arrival times

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 35

Page 36: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Priority queuing

Priority Schedulingseveral “Ready” process queues, with different priorities

4.b Scheduling AlgorithmsScheduling in interactive systems

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 36

Page 37: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Multilevel queue scheduling

Priority Schedulingprocesses are assigned to queues based on their properties (memory size, priority, bound type, etc.)

4.b Scheduling AlgorithmsScheduling in interactive systems

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003)Operating Systems Concepts with Java (6th Edition).

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 37

Page 38: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

Priority queuing

Priority Scheduling with Feedback (FB)processes can be moved among queueseach queue has its own policy, generally RR with variable q(Qi)

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

4.b Scheduling AlgorithmsScheduling in interactive systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 38

Page 39: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

FB (q = 1) scheduling policy

Priority Scheduling with Feedback (FB)each time a process is preempted, it is demoted to a lower-level queuetends to leave I/O-bound in higher priority queues, as desired

A B C D E Mean

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

4.b Scheduling AlgorithmsScheduling in interactive systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 39

Page 40: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

AB

CD

E

Arrival times

FB (q = 2i) scheduling policy

Priority Scheduling with Feedback (FB)a uniform RR quantum for all queues might create starvationto compensate for increasing wait times in lower queue, increase q, too; for example q = 2i

A B C D E Mean

Stallings, W. (2004) Operating Systems:Internals and Design Principles (5th Edition).

4.b Scheduling AlgorithmsScheduling in interactive systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 40

Page 41: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 41

4.b Scheduling AlgorithmsScheduling in interactive systems

Stall

ings,

W. (

2004

) Ope

ratin

g Sy

stem

s:In

tern

als a

nd D

esign

Prin

ciples

(5th

Edit

ion).

Page 42: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 42

4.b Scheduling AlgorithmsScheduling in interactive systems

Traditional UNIX schedulingmultilevel feedback using RR within each of the priority queuestypically 1-second preemption timeoutsystem of integer priorities recomputed once per seconda base priority divides processes into fixed bands of priority levels; in decreasing order:

swapperblock I/O device controlfile manipulationcharacter I/O device controluser processes

Page 43: 4. CPU Schedulingdoursat.free.fr/docs/CS446_S06/CS446_S06_4_Scheduling1-2.pdf3/28/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 2 Principles of Operating Systems

3/30/2006 CS 446/646 - Principles of Operating Systems - 4. CPU Scheduling 43

Principles of Operating SystemsCS 446/646

4. CPU Schedulinga. Concepts of Scheduling

b. Scheduling AlgorithmsScheduling in batch systemsScheduling in interactive systems

c. Queuing Analysis

d. Thread Scheduling