Top Banner
Job scheduling Queue discipline
28

Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Job scheduling

Queue discipline

Page 2: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Scheduling

• Modern computers have many processes/threads that want to run concurrently

• The scheduler is the manager of the CPU resource

• It makes allocation decisions – it chooses to run certain processes over others from the ready queue

– Zero threads: just loop in the idle loop

– One thread: just execute that thread

– More than one thread: now the scheduler has to make a resource allocation decision

• The scheduling algorithm determines how jobs are scheduled

Page 3: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

• Threads alternate between performing I/O and performing computation

• In general, the scheduler runs:

– when a process switches from running to waiting

– when a process is created or terminated

– when an interrupt occurs

• In a non-preemptive system, the scheduler waits for a running process to explicitly block, terminate or yield

• In a preemptive system, the scheduler can interrupt a process that is running.

Page 4: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Process states

• Processes are I/O-bound when they spend most of their time in the waiting state

• Processes are CPU-bound when they spend their time in the ready and running states

• Time spent in each entry into the running state is called a CPU burst

Burst DurationF

requ

ency

Page 5: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Scheduling Evaluation Metrics

• CPU utilization: % of time the CPU is not idle ()• Throughput: completed processes per unit time• Turnaround time: submission to completion (R)• Waiting time: time spent on the ready queue (W)• The right metric depends on the context

Page 6: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Evaluating Scheduling Algorithms

• Queueing theory – Mathematical techniques– Uses probablistic models of jobs / CPU utilization

• Simulation– Probabilistic(e.g. Taylor) or trace-driven

• Deterministic methods / Gantt charts– Use more realistic workloads

Page 7: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

First-Come, First-ServedProcess

A

B

C

Burst Time

8

1

1

• Avg Wait Time (0 + 8 + 9) / 3 = 5.7

0 8 9 10

A B CGanttChart

Page 8: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

FCFS(FIFO) and LCFS(LIFO)

• Problems with FCFS- Average waiting time can be large if small jobs

wait behind long ones (convoy effect)- May lead to poor overlap of I/O and CPU time

• Problems with LCFS- May lead to starvation – early processes may

never get the CPU

Page 9: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Shortest Job First (SJF)

longshort

long short

– Choose the job with the shortest next CPU burst

– Provably optimal for minimizing average waiting time

Page 10: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Shortest Job First

0 1 2 10

AB C

• Avg Wait Time (0 + 1 + 2) / 3 = 1

Process

A

B

C

Burst Time

8

1

1

Page 11: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

SFJ VariantsTwo Schemes:

i) Non-Preemptive -- Once CPU given to the job, it cannot be preempted until it completes its CPU burst.

ii) Preemptive -- If a new job arrives with CPU burst length shorter than remaining time of the current executing job -- preempt. (Shortest remaining time first or SRPT)

Page 12: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Example of Non-Preemptive SJFProcess Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

• SJF (non-preemptive)

P1 P3 P2

73 160

P4

8 12

•Average waiting time = (0 + 6 + 3 + 7)/4 = 4

Page 13: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Preemptive SJF (SRPT)Process Arrival Time Burst Time

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

• SJF (preemptive)

P1 P3P2

42 110

P4

5 7

P2 P1

16

•Average waiting time = (9 + 1 + 0 +2)/4 = 3

Page 14: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Problems with SJF

• Impossible to predict CPU burst times

• Schemes based on previous history (e.g. exponential averaging)

• SJF may lead to starvation of long jobs

• Solution to starvation- Age processes: increase priority as a function of waiting time

Page 15: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Priority Scheduling• SJF is a special case

Process

A

B

C

Burst Time

8

1

1

Priority

2

1

3

0 1 9 10

AB C

Avg Wait Time (0 + 1 + 9) / 3 = 3.3

Page 16: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Priority Scheduling Criteria?• Internal

– open files– memory requirements– CPU time used - time slice expired (RR)– process age - I/O wait completed

• External– $– department sponsoring work– process importance– super-user (root) - nice

Page 17: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Round robin (RR)• Often used for timesharing• Ready queue is treated as a circular queue

(FIFO)• Each process is given a time slice called a

quantum (q)– It is run for the quantum or until it finishes

– RR allocates the CPU uniformly (fairly) across all participants.

• If average queue length is n, each participant gets 1/n

Page 18: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Example of Round Robin (q=8)Process

P1

P2

P3

P4

P5

P6

P7

Burst Time

10

6

23

9

31

3

19

Wait Times

P1 8 P2 6 P3 8 P4 8 P5 8 P6 3 P7 8

P1 2 P3 8 P4 1 P5 8 P7 8

P3 7 P5 8 P7 3

P5 7

2

0

15

1

23

0

11

0

7

0

15

3

0

7

0

0

0

8

14

22

30

38

41

41

29

29

22

19

17

15

15

3

41

86051703875

343 / 7 = 49.00

Page 19: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Round Robin Fun

Process

A

B

C

Burst Time

10

10

10

• Wait time?• q = 10• q = 1• q --> 0

•As the time quantum grows, RR becomes FCFS

•Smaller quanta are generally desirable, because they improve response time

• Problem: Overhead of frequent context switch

• As q 0, we get processor sharing (PSRR)

Page 20: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Fun with SchedulingProcess

A

B

C

Burst Time

10

1

2

Priority

2

1

3

Gantt Charts: – FCFS– SJF– Priority– RR (q=1)

Performance: – Throughput– Waiting time– Turnaround time

Page 21: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Multi-Level Queues• Ready queue is partitioned into separate queues.

• Each queue has its own scheduling algorithm.• Scheduling must be done between the queues

SystemPriority 1

Priority 2

Priority 3

Interactive

Batch

... ...

Page 22: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

MQ-Fixed Priority SchedulingQueues A, B, C...

– Serve all from A then from B...– If serving queue B and process arrives in A, then start

serving A again:– i1) Preemptive -- As soon as processes arrive in A

(preempt, if serving from B)– i2) Non-preemptive -- Wait until process from B

finishes

• starvation is possible -- processes do not move between queues

Page 23: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

MQ-Time Slice Allocation– Each queue gets a certain amount of CPU time

which it can schedule amongst its processes

– Example

• 80% to foreground in RR

• 20% to background in FCFS

Page 24: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Linux Process Scheduling

• Two classes of processes:– Real-Time– Normal

• Real-Time:– Always run Real-Time above Normal– Round-Robin or FIFO– “Soft” not “Hard”

Page 25: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Linux Process Scheduling

• Normal: Credit-Based– process with most credits is selected– time-slice then lose a credit (0, then suspend)– no runnable process (all suspended), add to

every process:credits = credits/2 + priority

• Automatically favors I/O bound processes

Page 26: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Windows NT Scheduling

• Basic scheduling unit is a thread

• Priority based scheduling per thread

• Preemptive operating system

• No shortest job first, no quotas

Page 27: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Priority Assignment• NT kernel uses 31 priority levels

– 31 is the highest; 0 is system idle thread– Realtime priorities: 16 - 31– Dynamic priorities: 1 - 15

• Users specify a priority class:• realtime (24) , high (13), normal (8) and idle (4)

– and a relative priority:• highest (+2), above normal (+1), normal (0), below

normal (-1), and lowest (-2)

– to establish the starting priority

• Threads also have a current priority

Page 28: Job scheduling Queue discipline Scheduling Modern computers have many processes/threads that want to run concurrently The scheduler is the manager of.

Quantum

• Determines how long a Thread runs once selected

• Varies based on:– NT Workstation or NT Server– Intel or Alpha hardware– Foreground/Background application threads

• How do you think it varies with each?