• 沒有找到結果。

CPU Scheduling

N/A
N/A
Protected

Academic year: 2022

Share "CPU Scheduling"

Copied!
29
0
0

加載中.... (立即查看全文)

全文

(1)

Chapter 5

Process Scheduling

CPU Scheduling

ƒ Objective:

ƒ Basic Scheduling Concepts

ƒ CPU Scheduling Algorithms

ƒ Why Multiprogramming?

ƒ Maximize CPU/Resources Utilization (Based on Some Criteria)

(2)

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

CPU Scheduling

ƒ Process Execution

ƒ CPU-bound programs tend to have a few very long CPU bursts.

ƒ IO-bound programs tend to have many very short CPU bursts.

CPU-Burst

I/O-Burst New

Terminate

CPU Scheduling

ƒ The distribution can help in selecting an appropriate CPU-scheduling

algorithms

20 60 100 120

8 16 24

Burst Duration (ms)

frequency

(3)

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

CPU Scheduling

ƒ CPU Scheduler – The Selection of Process for Execution

ƒ A short-term scheduler New

Ready Running

Terminated

Waiting dispatched

CPU Scheduling

ƒ Nonpreemptive Scheduling

ƒ A running process keeps CPU until it volunteers to release CPU

ƒ E.g., I/O or termination

ƒ Advantage

ƒ Easy to implement (at the cost of service response to other processes)

ƒ E.g., Windows 3.1

(4)

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

CPU Scheduling

ƒ Preemptive 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 queues or shared data, especially for multiprocessor or real-time systems.

ƒ Synchronization

ƒ E.g., Interrupts and System calls

CPU Scheduling

ƒ Dispatcher

ƒ Functionality:

ƒ Switching context

ƒ Switching to user mode

ƒ Restarting a user program

ƒ Dispatch Latency:

Start a process Must be fast

Stop a process

(5)

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

Scheduling Criteria

ƒ Why?

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

ƒ Criteria

ƒ CPU Utilization

ƒ Throughput

ƒ Turnaround Time: CompletionT-StartT

ƒ Waiting Time: Waiting in the ReadyQ

ƒ Response Time: FirstResponseTime

Scheduling Criteria

ƒ How to Measure the Performance of CPU Scheduling Algorithms?

ƒ Optimization of what?

ƒ General Consideration

ƒ Average Measure

ƒ Minimum or Maximum Values

ƒ Variance Æ Predictable Behavior

(6)

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

Scheduling Algorithms

ƒ First-Come, First-Served Scheduling (FIFO)

ƒ Shortest-Job-First Scheduling (SJF)

ƒ Priority Scheduling

ƒ Round-Robin Scheduling (RR)

ƒ Multilevel Queue Scheduling

ƒ Multilevel Feedback Queue Scheduling

ƒ Multiple-Processor Scheduling

First-Come, First-Served Scheduling (FCFS)

ƒ The process which requests the CPU first is allocated the CPU

ƒ Properties:

ƒ Non-preemptive scheduling

ƒ CPU might be hold for an extended period.

CPU request

A FIFO ready queue dispatched

(7)

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

First-Come, First-Served Scheduling (FCFS)

ƒ Example

Process P1 P2 P3

CPU Burst Time 24

3 3

P1 P2 P3

0 24 27 30

Average waiting time

= (0+24+27)/3 = 17

P2 P3 P1

0 3 6 30

Average waiting time

= (6+0+3)/3 = 3

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

Gantt Chart

ƒ Example: Convoy Effect

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

processes

First-Come, First-Served Scheduling (FCFS)

CPU

ready queue

ready queue

I/O device

idle

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

(8)

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

Shortest-Job-First Scheduling (SJF)

ƒ Non-Preemptive SJF

ƒ Shortest next CPU burst first

process P1 P2 P3 P4

CPU burst time 6

8 7 3

P4 P1 P3 P2

0 3 9 16 24

Average waiting time

= (3+16+9+0)/4 = 7

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 Scheduler

ƒ A specified amount at its submission time

ƒ Short-Term Scheduler

ƒ Exponential average (0<=

α

<=1)

τ

n+1

= α t

n

+ (1-α) τ

n

(9)

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

Shortest-Job-First Scheduling (SJF)

ƒ Preemptive SJF

ƒ Shortest-remaining-time-first Process

P1 P2 P3 P4

CPU Burst Time 8

4 9 5

Arrival Time 0

1 2 3

P1 P2 P4 P1 P3

0 1 5 10 17 26

Average Waiting Time = ((10-1) + (1-1) + (17-2) + (5-3))/4 = 26/4

= 6.5

Shortest-Job-First Scheduling (SJF)

ƒ Preemptive or Non-preemptive?

ƒ Criteria such as AWT (Average Waiting Time)

0 10

1 10 11

Non-preemptive AWT = (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

(10)

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

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

Priority Scheduling

Process P1 P2 P3 P4 P5

CPU Burst Time 10

1 2 1 5

Priority 3 1 3 4 2 Gantt Graph

P2 P5 P1 P3 P4

0 1 6 16 18 19

Average waiting time

= (6+0+16+18+1)/5 = 8.2

(11)

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

Priority Scheduling

ƒ Priority Assignment

ƒ Internally defined – use some

measurable quantity, such as the # of open files,

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

Average CPU Burst Average I/O Burst

Priority Scheduling

ƒ Preemptive 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.

(12)

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

Priority Scheduling

ƒ Major Problem

ƒ Indefinite Blocking (/Starvation)

ƒ Low-priority processes could starve to death!

ƒ A Solution: Aging

ƒ A technique that increases the priority of processes waiting in the system for a long time.

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

(13)

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

Round-Robin Scheduling (RR)

Process P1 P2 P3

CPU Burst Time 24

3 3

Time slice = 4

P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30

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

= 17/3 = 5.66

Round-Robin Scheduling (RR)

ƒ Service Size and Interval

ƒ Time quantum = q Æ Service interval <= (n- 1)*q if n processes are ready.

ƒ IF q = ∞, then RR Æ FCFS.

ƒ IF q = ε, then RR Æ processor sharing. The

# of context switchings increases!

0 10

0 6 10

0 10

process quantum 12

6 1

context switch # 0

1 9

If context switch cost

time quantum = 10% => 1/11 of CPU is wasted!

(14)

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

Round-Robin Scheduling (RR)

ƒ Turnaround Time

0 10 20 30

0 10 20 30

0 10 20 30

process (10ms) P1

P2

P3 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

Multilevel Queue Scheduling

ƒ Partition the ready queue into several separate queues =>

Processes can be classified into different groups and permanently assigned to one queue.

System Processes Interactive Processes

Batch Processes

(15)

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

Multilevel Queue Scheduling

ƒ Intra-queue scheduling

ƒ Independent choice of scheduling algorithms.

ƒ Inter-queue scheduling

a. Fixed-priority preemptive scheduling

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

b. Time slice between queues

a. e.g., 80% CPU is given to foreground processes, and 20% CPU to background processes.

c. More??

Multilevel Feedback Queue Scheduling

ƒ Different from Multilevel Queue

Scheduling by Allowing Processes to Migrate Among Queues.

ƒ Configurable Parameters:

a. # of queues

b. The scheduling algorithm for each queue c. The method to determine when to upgrade a

process to a higher priority queue.

d. The method to determine when to demote a process to a lower priority queue.

e. The method to determine which queue a newly ready process will enter.

*Inter-queue scheduling: Fixed-priority preemptive?!

(16)

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

Multilevel Feedback Queue Scheduling

ƒ Example

quantum = 8

quantum = 16

FCFS

*Idea: Separate processes with different CPU-burst characteristics!

Multiple-Processor Scheduling

ƒ CPU scheduling in a system with multiple CPUs

ƒ A 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.

(17)

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

Multiple-Processor Scheduling

ƒ Load Sharing – Load Balancing!!

ƒ A queue for each processor

ƒ Self-Scheduling – Symmetric Multiprocessing

ƒ A common ready queue for all processors.

ƒ Self-Scheduling

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

ƒ Master-Slave – Asymmetric Multiprocessing

ƒ One processor accesses the system structures Æ no need for data sharing

Multiple-Processor Scheduling

ƒ Load Balancing

ƒ Push migration: A specific task periodically checks for imbalance and migrate tasks

ƒ Pull migration: An idle processor pulls a waiting task from a busy processor

ƒ Linux and FreeBSD do both!

ƒ Processor Affinity

ƒ The system might avoid process migration because of the cost in invalidating or re- populating caches

ƒ Soft or hard affinity

(18)

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

Multiple-Processor Scheduling

ƒ Symmetric Multithreading (SMT), i.e., Hyperthreading

ƒ A feature provided by the hardware

ƒ Several logical processors per physical processor

ƒ Each has its own architecture state, including registers.

ƒ Issues: Process Synchronization

Multiple-Processor Scheduling – SMT

time

unused issue slot occupied issue slot

SMT Superscalar

Utilization++

Utilization++

Throughput++

Throughput++

Performance++

Performance++

: 13 : 10 : 11

(19)

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

Thread Scheduling

ƒ Two Scopes:

ƒ Process Contention Scope (PCS): m:1 or m:m

ƒ Priority-Driven

ƒ System-Contention Scope (SCS): 1:1

ƒ Pthread Scheduling

ƒ PCS and SCS

Pthread_attr_setscope(pthread_attr_t *attr, int scope) Pthread_attr_getscope(pthread_attr_t *attr, int *scope)

Operating System Examples

ƒ Process Local Scheduling

ƒ E.g., those for user-level threads

ƒ Thread scheduling is done locally to each application.

ƒ System Global Scheduling

ƒ E.g., those for kernel-level threads

ƒ The kernel decides which thread to run.

(20)

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

Operating System Examples – Solaris

ƒ Priority-Based Process Scheduling

ƒ Real-Time

ƒ System

ƒ Kernel-service processes

ƒ Time-Sharing

ƒ A default class

ƒ Interactive

ƒ Each LWP inherits its class from its parent process

low

Operating System Examples – Solaris

ƒ Real-Time

ƒ A guaranteed response

ƒ System

ƒ The priorities of system processes are fixed.

ƒ Time-Sharing

ƒ Multilevel feedback queue scheduling – priorities inversely proportional to time slices

ƒ Interactive

ƒ Prefer windowing process

(21)

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

Operating System Examples – Solaris

59 49

20 59

58 45

40 55

58 40

40 50

56 35

40 45

55 30

40 40

54 25

80 35

53 20

80 30

52 15

120 25

52 10

120 20

51 5

160 15

51 0

160 10

50 0

200 5

50 0

200 0

Return from sleep Time quantum exp.

Time quantum priority

Interactive and time sharing threads

low

high

Operating System Examples – Solaris

ƒ 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.

ƒ RR is used when several threads

have the same priority.

(22)

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

Operating System Examples – Solaris

ƒ Two New Classes in Solaris 9

ƒ Fixed Priority

ƒ Non-adjusted priorities in the range of the time-sharing class

ƒ Fair Sharing

ƒ CPU shares, instead of priorities

Operating System Examples – Windows XP

ƒ Priority-Based Preemptive Scheduling

ƒ Priority Class/Relationship: 0..31

ƒ Dispatcher: A process runs until

ƒ It is preempted by a higher-priority process.

ƒ It terminates

ƒ Its time quantum ends

ƒ It calls a blocking system call

ƒ Idle thread

ƒ A queue per priority level

(23)

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

Operating System Examples – Windows XP

ƒ Each thread has a base priority that

represents a value in the priority range of its class.

ƒ A typical class – Normal_Priority_Class

ƒ Time quantum – thread

ƒ Increased after some waiting

ƒ Different for I/O devices.

ƒ Decreased after some computation

ƒ The priority is never lowered below the base priority.

ƒ Favor foreground processes (more time quantum)

Operating System Examples – Windows XP

1 1

1 1

1

Idle 16

2 4

6 8

11

Lowest 22

3 5

7 9

12

Below 23

normal

4 6

8 10

13

Normal 24

5 7

9 11

14

Above 25

normal

6 8

10 12

15

Highest 26

15 15

15 15

15

Time- 31

critical

Idle priority Below

normal Normal

Above normal High

Real- time

Variable Class (1..15) Real-Time Class

Base Priority

A Typical Class

(24)

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

Operating System Examples – Linux Ver. 2.5+

ƒ Scheduling Algorithm

ƒ O(1)

ƒ SMP, load balancing, and processor affinity

ƒ Fairness and support for interactive tasks

ƒ Priorities

ƒ Real-time: 0..99

ƒ Nice: 100..140

Nemeric Priority

Time Quantum

0 . . 99 100

. . . 140

200ms . . . . . . . . 10ms

Real Time Tasks Other Tasks

Operating System Examples – Linux Ver. 2.5+

ƒ Each processor has a runqueue

ƒ An active array and an expired array

ƒ Switching of the two arrays when all processes in the active array have their quantum expired.

ƒ Priority-Driven Scheduling

ƒ Fixed Priority – Real-Time

ƒ Dynamic Priority – nice ± x, for x <= 5

ƒ Interactive tasks are favored.

ƒ The dynamic priority of a task is recalculated when its quantum is expired.

(25)

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

Algorithm Evaluation

ƒ A General Procedure

ƒ Select criteria that may include several measures, e.g., maximize CPU

utilization while confining the maximum response time to 1 second

ƒ Evaluate various algorithms

ƒ Evaluation Methods:

ƒ Deterministic modeling

ƒ Queuing models

ƒ Simulation

ƒ Implementation

Deterministic Modeling

ƒ A Typical Type of Analytic Evaluation

ƒ Take a particular predetermined workload and defines the performance of each

algorithm for that workload

ƒ Properties

ƒ Simple and fast

ƒ Through excessive executions of a number of examples, trends might be identified

ƒ But it needs exact numbers for inputs, and its answers only apply to those cases

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

(26)

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

Deterministic Modeling

process P1 P2 P3 P4 P5

CPU Burst time 10

29 3 7 12

P3 P5 P2

0 3 10 20 61

P4 P1

32

Nonpreemptive Shortest Job First

P1 P2

0 10 20 40 50 61

P2

23

P4 P5 30

P2 P5 52

Round Robin (quantum =10)

P1

0 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=23

P2 P3 P4 P5

P3

Queueing Models

ƒ Motivation:

ƒ Workloads vary, and there is no static set of processes

ƒ Models (~ Queueing-Network Analysis)

ƒ Workload:

a. Arrival rate: the distribution of times when processes arrive.

b. The distributions of CPU & I/O bursts

ƒ Service rate

(27)

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

Queueing Models

ƒ Model 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 &

distributions

ƒ Assumptions are made to make

problems solvable => inaccurate results

Queueing Models

ƒ Example: Little’s formula

n = # of processes in the queue λ = arrival rate

ω = average waiting time in the queue

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

w n = λ ∗

λ

w steady state!

λ

(28)

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

Simulation

ƒ Motivation:

ƒ 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

=> inaccuracy occurs because of 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.

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 simulator can be a big job.

(29)

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

Implementation

ƒ Motivation:

ƒ Get more accurate results than a simulation!

ƒ Procedure:

ƒ Code scheduling algorithms

ƒ Put them in the OS

ƒ Evaluate the real behaviors

Implementation

ƒ Difficulties:

ƒ Cost in coding algorithms and modifying the OS

ƒ Reaction of users to a constantly changing the OS

ƒ The environment in which algorithms are used will change

ƒ For example, users may adjust their behaviors according to the selected algorithms

=> Separation of the policy and mechanism!

參考文獻

相關文件

As as single precision floating point number, they represent 23.850000381, but as a double word integer, they represent 1,103,023,309.. The CPU does not know which is the

† CPU 執行原工作,若週邊裝置有需求,則發出中 斷信號通知CPU ,待CPU知道後,暫停目前工作

下列關於 CPU 的敘述,何者正確?(A)暫存器是 CPU 內部的記憶體(B)CPU 內部快取記憶體使 用 Flash Memory(C)具有 32 條控制匯流排排線的 CPU,最大定址空間為

The presentation or rebranding by a company of an established product in a new form, a new package or under a new label into a market not previously explored by that company..

ƒ 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

Therefore, this study proposes a Reverse Logistics recovery scheduling optimization problem, and the pallet rental industry, for example.. The least cost path, the maximum amount

This study conducted DBR to the production scheduling system, and utilized eM-Plant to simulate the scheduling process.. While comparing the original scheduling process

proposed a greedy algorithm to utilize the Divide-and-Conquer technique to obtain near optimal scheduling while attempting to minimize the size of total communication messages