32
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002. Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual Memory 11. File Systems Chapter 6 CPU Scheduling

Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

1

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Contents1. Introduction2. Computer-System Structures3. Operating-System Structures4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks9. Memory Management10. Virtual Memory11. File Systems

Chapter 6 CPU Scheduling

Page 2: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

2

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU Scheduling

Objective:Basic Scheduling ConceptsCPU Scheduling Algorithms

Why Multiprogramming?Maximize CPU/Resources Utilization (Based on Some Criteria)

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU SchedulingProcess Execution

CPU-bound programs tend to have a few very long CPU bursts.IO-bound programs tend to have may very short CPU bursts.

CPU-Burst

I/O-BurstNew

Terminate

Page 3: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

3

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU SchedulingThe distribution can help in selecting an appropriate CPU-scheduling algorithms

20

60100

120

8 16 24Burst Duration (ms)

frequency

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU SchedulingCPU Scheduler – The Selection of Process for Execution

A short-term scheduler

New

Ready Running

Terminated

Waiting

dispatched

Page 4: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

4

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU SchedulingNonpreemptive Scheduling

A running process keeps CPU until it volunteers to release CPUAdvantage

Easy to implement (at the cost of better resource sharing)

E.g., Windows 3.1

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU SchedulingPreemptive Scheduling

Beside the instances for non-preemptive scheduling, CPU scheduling occurs whenever some process becomes ready or the running process leaves the running state!

Issues involved:Protection of Resources such as I/O queuesSynchronization

E.g., Interrupts and System calls

Page 5: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

5

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

CPU Scheduling

DispatcherFunctionality:

Switching contextSwitching to user modeRestarting a user program

Dispatch Latency:

Start a process Must be fast

Stop a process

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Scheduling CriteriaWhy?

Different scheduling algorithms may favor one class of processes over another!

CriteriaCPU UtilizationThroughputTurnaround TimeWaiting TimeResponse Time

Page 6: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

6

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Scheduling Criteria

How to Measure the Performance of CPU Scheduling Algorithm?

Optimization of what?General Consideration

Average MeasureMinimum or Maximum Values

Variance Predictable Behavior

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Scheduling Algorithms

First-Come, First-Served Scheduling (FIFO)Shortest-Job-First Scheduling (SJF)Priority SchedulingRound-Robin Scheduling (RR)Multilevel Queue SchedulingMultilevel Feedback Queue SchedulingMultiple-Processor Scheduling

Page 7: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

7

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

First-Come, First-Served Scheduling (FCFS)

The process which requests the CPU first is allocated the CPUProperties:

Non-preemptive schedulingCPU might be hold for an extended period.

CPUrequest

A FIFO ready queue dispatched

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

First-Come, First-ServedScheduling (FCFS)

ExampleProcess

P1P2P3

CPU Burst Time2433

P1 P2 P30 24 27 30

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

P2 P3 P10 3 6 30

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

*The average waiting time is highly affected by process CPU burst times !

Gnatt Chart

Page 8: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

8

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Example: Convey Effect

One CPU-bound process + many I/O-bound processes

First-Come, First-ServedScheduling (FCFS)

CPU

ready queue

ready queue

I/O device

idle

All other processes wait for it to get off the CPU!

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Shortest-Job-First Scheduling (SJF)

Non-Preemptive SJFShortest next CPU burst first

processP1P2P3P4

CPU burst time6873

P4 P1 P3 P20 3 9 16 24

Page 9: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

9

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Shortest-Job-First Scheduling (SJF)

Nonpreemptive SJF is optimal when processes are all ready at time 0

The minimum average waiting time!Prediction of the next CPU burst time?

Long-Term SchedulerA specified amount at its submission time

Short-Term SchedulerExponential average

τn+1 = α tn + (1-α) τn

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Shortest-Job-First Scheduling (SJF)

Preemptive SJFShortest-remaining-time-first

ProcessP1P2P3P4

CPU Burst Time8495

Arrival Time0123

P1 P2 P4 P1 P30 1 5 10 17 26

Average WaitingTime = ((10-1) +(1-1) + (17-2) +(5-3))/4 = 26/4= 6.5

Page 10: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

10

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Shortest-Job-First Scheduling (SJF)

Preemptive or Non-preemptive?Criteria such as AWT (Average Waiting Time)

0 10

1 10 11

Non-preemptiveAWT = (0+(10-1))/2= 9/2 = 4.5

or

0

1 2

11 Preemptive AWT= ((2-1)+0) = 0.5

* Context switching cost ~ modeling & analysis

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Priority Scheduling

CPU is assigned to the process with the highest priority – A framework for various scheduling algorithms:

FCFS: Equal-Priority with Tie-Breaking by FCFS SFJ: Priority = 1 / next CPU burst length

Page 11: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

11

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Priority SchedulingProcess

P1P2P3P4P5

CPU Burst Time101215

Arrival Time31342

Gantt Graph

P2 P5 P1 P3 P40 1 6 16 18 19

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Priority Scheduling

Priority AssignmentInternally defined – use some measurable quality, such as the # of open files,

Externally defined – set by criteria external to the OS, such as the criticality levels of jobs.

Average I/O BurstAverage I/O Burst

Page 12: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

12

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Priority SchedulingPreemptive or Non-Preemptive?

Preemptive scheduling – CPU scheduling is invoked whenever a process arrives at the ready queue, or the running process relinquishes the CPU.Non-preemptive scheduling – CPU scheduling is invoked only when the running process relinquishes the CPU.

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Priority Scheduling

Major ProblemIndefinite Blocking (/Starvation)

Low-priority processes could starve to death!

A Solution: AgingA technique that increase the priority of processes waiting in the system for a long time.

Page 13: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

13

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Round-Robin Scheduling (RR)RR is similar to FCFS except that preemption is added to switch between processes.

Goal: Fairness – Time Sharing

ready running

Interrupt at every time quantum (time slice)

FIFO…CPU

The quantum is used up!

New process

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Round-Robin Scheduling (RR)Process

P1P2P3

CPU Burst Time2433

Time slice = 4

P1 P2 P1P3 P1 P1 P1 P10 4 7 10 14 18 22 26 30

AWT = ((10-4) + (4-0) + (7-0))/3= 17/3 = 5.66

Page 14: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

14

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Round-Robin Scheduling (RR)Service Size and Interval

Time quantum = q Service interval <= (n-1)*q if n processes are readyIF q = ∞, then RR FCFSIF q = ε, then RR processor sharing. The # of context switchings increases!

0 10

0 6 10

0 10

process quantum1261

context switch #019

If context switch costtime quantum = 10% => 1/11 of CPU is wasted!

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Round-Robin Scheduling (RR)

Turnaround Time

0 10 20 30

0 10 20 30

0 10 20 30

process (10ms)

P1P2P3 20 30

10 20

0 10

quantum = 10 quantum = 1

Average Turnaround Time= (10+20+30)/3 = 20

ATT = (28+29+30)/3 = 29

=> 80% CPU Burst < time slice

Page 15: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

15

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multilevel Queue SchedulingPartition the ready queue into several separate queues => processes can be classified into different groups and permanently assigned to one queue.

Process Group 1

Process Group 2

Process Group n

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multilevel Queue SchedulingIntra-queue scheduling

Independent choice of scheduling algorithms.

Inter-queue schedulinga. Fixed-priority preemptive scheduling

a. e.g., foreground queues always have absolute priority over background queues.

b. Time slice between queuea. e.g., 80% CPU is given to foreground processes,

and 20% CPU to background processes.c. More??

Page 16: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

16

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multilevel Feedback Queue Scheduling

Different from Multilevel Queue Scheduling by Allowing Processes to Migrate Among Queues.

Configurable Parameters:a. # of queuesb. The scheduling algorithm for each queuec. The method to determine when to upgrade a

process to higher priority queue.d. The method to determine when to degrade a

process to lower priority queue.e. The method to determine which queue a newly

ready process will enter.*Inter-queue scheduling: Fixed-priority preemptive?!

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multilevel Feedback Queue Scheduling

Example

quantum = 8

quantum = 16

FCFS*Idea: Separate processes with different CPU-burstcharacteristics!

Page 17: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

17

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multiple-Processor SchedulingCPU scheduling in a system with multiple CPUsA Homogeneous System

Processes are identical in terms of their functionality.

Can processes run on any processor?A Heterogeneous System

Programs must be compiled for instructions on proper processors.

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Multiple-Processor SchedulingLoad Sharing – Load Balancing!!

A queue for each processorSelf-Scheduling – Symmetric Multiprocessing

A common ready queue for all processors.

Master-Slave – Asymmetric Multiprocessing

Need synchronization to access common data structure, e.g., queues.

One processor accesses the system structures no need for data sharing

Page 18: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

18

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time SchedulingDefinition

Real-time means on-time, instead of fast!Hard real-time systems:

Failure to meet the timing constraints (such as deadline) of processes may result in a catastrophe!

Soft real-time systems:Failure to meet the timing constraints may still contribute value to the system.

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time SchedulingDispatch Latency

1. Preemption of the running process2. Releasing resources needed by the higher

priority process3. Context switching to the higher priority

process

Dispatch latency

Conflicts Dispatch

Page 19: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

19

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time SchedulingMinimization of Dispatch Latency?

Context switching in many OS, e.g., some UNIX versions, can only be done after a system call completes or an I/O blocking occurs

Solutions:1. Insert safe preemption points in long-

duration system calls.2. Protect kernel data by some

synchronization mechanisms to make the entire kernel perceptible.

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time SchedulingPriority Inversion:

A higher-priority processes must wait for the execution of a lower-priority processes.

P1

P2

P3

DTime

P3 also waits for P2 to complete?

D D D VP1

P2

P3 D

Time

Time

Requestfor D

Page 20: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

20

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time SchedulingPriority Inheritance

The blocked process inherits the priority of the process that causes the blocking.

P1

P2

P3

D TimeD D D VP1

P2

P3 D

Time

Time

Requestfor D

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time Scheduling

Earliest Deadline First Scheduling (EDF)

Processes with closer deadline have higher priorities.

An optimal dynamic-priority-driven scheduling algorithm for periodic and aperiodic processes!

))/1()(( ii dpriority ∝τ

Liu & Layland [JACM 73] showed that EDF is optimal in the sense that a process set is scheduled by EDF if its CPU utilization is no larger than 100%. ∑

i

iP

C

Page 21: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

21

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Real-Time Scheduling – EDF

processP1P2P3

CPU Burst time456

Period201516

Initial Arrival Time012

Average waiting time=(11+0+4)/3=5

0 2 206 18

150 1 6 12

P2 P3 P1P1

150 1 12 20

0 1 206 16P3

12

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

A General Architecture of RTOS’s

Objectives in the Design of Many RTOS’s

Efficient Scheduling MechanismsGood Resource Management PoliciesPredictable Performance

Common Functionality of Many RTOS’sTask ManagementMemory ManagementResource Control, including devicesProcess Synchronization

Page 22: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

22

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

A General Architecture

BottomHalf

Top Half

processesUserSpace

OS

hardware

Timer expires to• Expire the running process’s

time quota• Keep the accounting info

for each process

System calls such as I/O requestswhich may cause the releasingCPU of a process!

Interrupts for Services

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

A General Architecture2-Step Interrupt Services

Immediate Interrupt ServiceInterrupt priorities > process prioritiesTime: Completion of higher priority ISR, context switch, disabling of certain interrupts, starting of the right ISR (urgent/low-level work, set events)

Scheduled Interrupt ServiceUsually done by preemptable threads

Remark: Reducing of non-preemptablecode, Priority Tracking/Inheritance (LynxOS), etc.

ISR

I

Interrupt/ISR Latency

SecheduledService

IST Latency

Page 23: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

23

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

A General Architecture

SchedulerA central part in the kernelThe scheduler is usually driven by a clock interrupt periodically, except when voluntary context switches occur – thread quantum?

Timer ResolutionTick size vs Interrupt Frequency

10ms? 1ms? 1us? 1ns?Fine-Grained hardware clock

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

A General Architecture

Memory ManagementNo protection for many embedded systemsMemory-locking to avoid paging

Process SynchronizationSources of Priority Inversion

Nonpreemptible codeCritical sections

A limited number of priority levels, etc.

Page 24: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

24

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Algorithm EvaluationA General Procedure

Select criteria that may include several measures, e.g., maximize CPU utilization while confining the maximum response time to 1 secondEvaluate various algorithms

Evaluation Methods:Deterministic modelingQueuing modelsSimulationImplementation

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Deterministic ModelingA Typical Type of Analytic Evaluation

Take a particular predetermined workload and defines the performance of each algorithm for that workload

PropertiesSimple and fastThrough excessive executions of a number of examples, treads might be identifiedBut it needs exact numbers for inputs, and its answers only apply those cases

Being too specific and requires too exact knowledge to be useful!

Page 25: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

25

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Deterministic Modeling

processP1P2P3P4P5

CPU Burst time102937

12

P3 P5 P20 10 20 613

P4 P132

Nonpreemptive Shortest Job First

P1 P20 10 20 40 50 61

P223

P4 P530

P2 P552

Round Robin (quantum =10)

P10 10 39 42 49 61

FCFC

Average Waiting Time (AWT)=(0+10+39+42+49)/5=28

AWT=(10+32+0+3+20)/5=13

AWT=(0+(10+20+2)+20+23+(30+10))/5=13

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Queueing Models

Motivation:Workloads vary and there is no stati set of processes

Models (~queueing-network analysis)Workload:a. Arrival rate: the distribution of times when

processes arriveb. The distributions of CPU & I/O burstsService rate

Page 26: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

26

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Queueing ModelsModel a computer system as a network of servers. Each server has a queue of waiting processes

Compute average queue length, waiting time.., and so on.

Properties:Generally useful but with limited application to the classes of algorithms & distributionsAssumptions are made to make problems solvable => inaccurate results

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Queueing ModelsExample: Little’s formula

n = # of processes in queueλ = arrival rateω = average waiting time in queue

If n =14 & λ =7 processes/sec, then w = 2 seconds.

wn ∗= λ

λw steady state!

λ

Page 27: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

27

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

SimulationMotivation:

Get a more accurate evaluation.Procedures:

Program a model of the computer system Drive the simulation with various data sets

Randomly generated according to some probability distributions

=> inaccurate indicate only the occurrence frequency of events. Miss the order & the relationships of events.

Trace tapes: monitor the real system & record the sequence of actual events.

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Simulation

Properties:Accurate results can be gotten but it could be expensive in terms of computation time and storage space.The coding, design, and debugging of a simulation can be a big job.

Page 28: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

28

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

ImplementationMotivation:

Get more accurate results than a simulation!

Procedure:Code scheduling algorithms Put them in the OSEvaluate the real behavior

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Implementation

Difficulties:Cost in coding algorithm and modifying OSReaction of users to a constantly changing OSThe environment in which algorithms are used will change

e.g., users may adjust their behaviors according to the selected algorithms

=> Separation of the policy and mechanism!

Page 29: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

29

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model

Process Local SchedulingUser-level threads

System Global SchedulingKernel-level threads

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Solaris 2

Priority-Based Process SchedulingReal-TimeSystem

Kernel processesTime-Sharing

A default classInteractive

Each LWP inherits its class from its parent process

low

Page 30: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

30

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Solaris 2

Real-TimeA guaranteed response

SystemThe priorities of system processes are fixed.

Time-SharingMultilevel feedback queue scheduling – priorities inversely proportional to time slices

InteractivePrefer windowing process

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Solaris 2

The selected thread runs until one of the following occurs:

It blocks.It uses its time slice (if it is not a system thread).It is preempted by a higher-priority thread.

Page 31: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

31

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Windows 2000

Priority-Based Preemptive SchedulingPriority Class/Relationship: 0..31Dispatcher: A process runs until

It is preempted by a higher-priority process.It terminatesIts time quantum endsIt calls a blocking system call

Idle threadTime quantum – thread

Increased after some waitingDecreased after some computationFavor foreground processes

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Windows 2000

1111116Idle

24681122Lowest

35791223Below normal

468101324Normal

579111425Above normal

6810121526Highest

151515151531Time-critical

Idle priority

Below normal

NormalAbove normal

HighReal-time

Variable ClassReal-Time Class

BasePriority

A Typical Class

Page 32: Chapter 6 CPU Schedulingd92005/OS/uos-ch6.pdf · Load Sharing – Load Balancing!! A queue for each processor Self-Scheduling – Symmetric Multiprocessing A common ready queue for

32

* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2002.

Process Scheduling Model –Linux

A Time-Sharing Algorithm for FairnessCredits = (credits / 2) + priority

Recrediting when no runnable process has any credits.

Favor interactive or I/O-bound processes

Real-Time Scheduling AlgorithmsFCFS & RR as required by POSIX.1b

No scheduling in kernel space for conventional Linux