Chapter 5: CPU Scheduling Outline Wh a t i s s c h e d u - - PowerPoint PPT Presentation

chapter 5 cpu scheduling outline
SMART_READER_LITE
LIVE PREVIEW

Chapter 5: CPU Scheduling Outline Wh a t i s s c h e d u - - PowerPoint PPT Presentation

Chapter 5: CPU Scheduling Outline Wh a t i s s c h e d u l i n g i n t h e O S ? Wh a t a r e c o m m o n s c h e d u l i n g c r i t e r i a ? H o w t o e v a l u a t


slide-1
SLIDE 1

1

Chapter 5: CPU Scheduling – Outline

 Wh

a t i s s c h e d u l i n g i n t h e O S ?

 Wh

a t a r e c

  • m

m

  • n

s c h e d u l i n g c r i t e r i a ?

 H

  • w

t

  • e

v a l u a t e s c h e d u l i n g a l g

  • r

i t h m s ?

 Wh

a t a r e c

  • m

m

  • n

s c h e d u l i n g a l g

  • r

i t h m s ?

 H

  • w

i s t h r e a d s c h e d u l i n g d i fg e r e n t f r

  • m

p r

  • c

e s s s c h e d u l i n g ?

 Wh

a t a r e t h e i s s u e s i n m u l t i p l e

  • p

r

  • c

e s s

  • r

s c h e d u l i n g ?

 O

p e r a t i n g s y s t e m s c a s e s t u d i e s .

slide-2
SLIDE 2

2

Basic Concepts

 M

u l t i p r

  • g

r a m m i n g

 m

  • s

t p r

  • c

e s s e s a l t e r n a t e b e t w e e n C P U b u r s t s a n d I / O b u r s t s

 C

P U f r e e a n d i d l e d u r i n g I / O b u r s t

 s

c h e d u l e a n

  • t

h e r p r

  • c

e s s

  • n

t h e C P U

 m

a x i m i z e s C P U u t i l i z a t i

  • n

 C

P U b

  • u

n d p r

  • c

e s s

 s

p e n d s m

  • s

t

  • f

i t s t i m e i n t h e C P U

 a

t l e a s t a f e w l

  • n

g C P U b u r s t s

 I

/ O b

  • u

n d p r

  • c

e s s

 s

p e n d s m

  • s

t i t s t i m e p e r f

  • r

m i n g I / O

 s

e v e r a l s h

  • r

t C P U b u r s t s

slide-3
SLIDE 3

3

CPU Scheduler

 R

e s p

  • n

s i b l e f

  • r

t h e s e l e c t i

  • n
  • f

t h e n e x t r u n n i n g p r

  • c

e s s

 p

a r t

  • f

t h e O S d i s p a t c h e r

 s

e l e c t s f r

  • m

a m

  • n

g t h e p r

  • c

e s s e s i n m e m

  • r

y t h a t a r e r e a d y t

  • e

x e c u t e

 b

a s e d

  • n

a p a r t i c u l a r s t r a t e g y

 Wh

e n d

  • e

s C P U s c h e d u l i n g h a p p e n ?

 p

r

  • c

e s s s w i t c h e s f r

  • m

r u n n i n g t

  • w

a i t i n g s t a t e

 p

r

  • c

e s s s w i t c h e s f r

  • m

r u n n i n g t

  • r

e a d y s t a t e

 p

r

  • c

e s s s w i t c h e s f r

  • m

w a i t i n g t

  • r

e a d y s t a t e

 p

r

  • c

e s s t e r m i n a t e s

 S

c h e d u l i n g u n d e r 1 a n d 4 i s n

  • n

p r e e mp t i v e

 A

l l

  • t

h e r s c h e d u l i n g i s p r e e mp t i v e

slide-4
SLIDE 4

4

Preemptive Vs. Non-preemptive CPU Scheduling

 N

  • n
  • p

r e e m p t i v e s c h e d u l i n g

 p

r

  • c

e s s v

  • l

u n t a r i l y r e l e a s e s t h e C P U ( c

  • n

d i t i

  • n

s 1 a n d 4 )

 e

a s y , r e q u i r e s n

  • s

p e c i a l h a r d w a r e

 p

  • r

r e s p

  • n

s e t i m e f

  • r

i n t e r a c t i v e a n d r e a l

  • t

i m e s y s t e m s

 P

r e e m p t i v e s c h e d u l i n g

 O

S c a n f

  • r

c e a r u n n i n g p r

  • c

e s s i n v

  • l

u n t a r i l y r e l i n q u i s h t h e C P U

 a

r r i v a l

  • f

a h i g h e r p r i

  • r

i t y p r

  • c

e s s

 r

u n n i n g p r

  • c

e s s e x c e e d s i t s t i m e

  • s

l

  • t

 m

a y r e q u i r e s p e c i a l h a r d w a r e , e g . , t i m e r

 m

a y r e q u i r e s y n c h r

  • n

i z a t i

  • n

m e c h a n i s m s t

  • m

a i n t a i n d a t a c

  • n

s i s t e n c y

 c

  • m

p l i c a t e s d e s i g n

  • f

t h e k e r n e l

 f

a v

  • r

e d b y m

  • s

t O S e s

slide-5
SLIDE 5

5

Dispatcher

 S

c h e d u l e r i s a p a r t

  • f

t h e d i s p a t c h e r m

  • d

u l e i n t h e O S

 F

u n c t i

  • n

s

  • f

t h e d i s p a t c h e r

 g

e t t h e n e w p r

  • c

e s s f r

  • m

t h e s c h e d u l e r

 s

w i t c h

  • u

t t h e c

  • n

t e x t

  • f

t h e c u r r e n t p r

  • c

e s s

 g

i v e C P U c

  • n

t r

  • l

t

  • t

h e n e w p r

  • c

e s s

 j

u m p t

  • t

h e p r

  • p

e r l

  • c

a t i

  • n

i n t h e n e w p r

  • g

r a m t

  • r

e s t a r t t h a t p r

  • g

r a m

 T

i m e t a k e n b y t h e d i s p a t c h e r t

  • s

t

  • p
  • n

e p r

  • c

e s s a n d s t a r t a n

  • t

h e r r u n n i n g i s c a l l e d t h e d i s p a t c h l a t e n c y

slide-6
SLIDE 6

6

Scheduling Queues

 J

  • b

q u e u e : c

  • n

s i s t s

  • f

a l l p r

  • c

e s s e s

 a

l l j

  • b

s ( p r

  • c

e s s e s ) ,

  • n

c e s u b m i t t e d , a r e i n t h e j

  • b

q u e u e

 s

c h e d u l e d b y t h e l

  • n

g

  • t

e r m s c h e d u l e r

 R

e a d y q u e u e : c

  • n

s i s t s

  • f

p r

  • c

e s s e s i n m e m

  • r

y

 p

r

  • c

e s s e s r e a d y a n d w a i t i n g f

  • r

e x e c u t i

  • n

 s

c h e d u l e d b y t h e s h

  • r

t

  • t

e r m

  • r

C P U s c h e d u l e r

 D

e v i c e q u e u e : p r

  • c

e s s e s w a i t i n g f

  • r

a d e v i c e

 m

u l t i p l e p r

  • c

e s s e s c a n b e b l

  • c

k e d f

  • r

t h e s a m e d e v i c e

 I

/ O c

  • m

p l e t i

  • n

m

  • v

e s p r

  • c

e s s b a c k t

  • r

e a d y q u e u e

slide-7
SLIDE 7

7

Scheduling Queues (2)

slide-8
SLIDE 8

8

Performance Metrics for CPU Scheduling

 C

P U u t i l i z a t i

  • n

: p e r c e n t a g e

  • f

t i m e t h a t t h e C P U i s b u s y

 T

h r

  • u

g h p u t : n u m b e r

  • f

p r

  • c

e s s e s t h a t c

  • m

p l e t e t h e i r e x e c u t i

  • n

p e r t i m e u n i t

 T

u r n a r

  • u

n d t i m e : a m

  • u

n t

  • f

t i m e t

  • e

x e c u t e a p a r t i c u l a r p r

  • c

e s s ( s u b m i s s i

  • n

t i m e t

  • c
  • m

p l e t i

  • n

t i m e )

 Wa

i t i n g t i m e : a m

  • u

n t

  • f

t i m e a p r

  • c

e s s h a s b e e n w a i t i n g i n t h e r e a d y q u e u e

 R

e s p

  • n

s e t i m e : a m

  • u

n t

  • f

t i m e i t t a k e s f r

  • m

w h e n a r e q u e s t w a s s u b m i t t e d u n t i l t h e fj r s t r e s p

  • n

s e i s p r

  • d

u c e d

 S

c h e d u l i n g g

  • a

l s

 m

a x i m i z e C P U u t i l i z a t i

  • n

a n d t h r

  • u

g h p u t

 m

i n i m i z e t u r n a r

  • u

n d t i m e , w a i t i n g t i m e a n d r e s p

  • n

s e t i m e

 b

e f a i r t

  • a

l l p r

  • c

e s s e s a n d a l l u s e r s

slide-9
SLIDE 9

9

Method for Evaluating CPU Scheduling Algorithms

 E

v a l u a t i

  • n

c r i t e r i a

 d

e fj n e r e l a t i v e i m p

  • r

t a n c e

  • f

t h e p e r f

  • r

m a n c e m e t r i c s

 i

n c l u d e

  • t

h e r s y s t e m

  • s

p e c i fj c m e a s u r e s

 D

e t e r m i n i s t i c m

  • d

e l i n g

 t

a k e s a p a r t i c u l a r p r e d e t e r m i n e d w

  • r

k l

  • a

d a n d d e fj n e s t h e p e r f

  • r

m a n c e

  • f

e a c h a l g

  • r

i t h m f

  • r

t h a t w

  • r

k l

  • a

d

 s

i m p l e a n d f a s t , g i v e s e x a c t n u m b e r s

 d

i ffj c u l t t

  • g

e n e r a l i z e r e s u l t s

 c

a n r e c

  • g

n i z e a l g

  • r

i t h m p e r f

  • r

m a n c e t r e n d s

  • v

e r s e v e r a l i n p u t s

 u

s e d f

  • r

e x p l a i n i n g s c h e d u l i n g a l g

  • r

i t h m s

 u

s e d i n t h e r e s t

  • f

t h i s c h a p t e r !

slide-10
SLIDE 10

10

Workload Models and Gantt Charts

 Wo

r k l

  • a

d m

  • d

e l :

 G

a n t t c h a r t s :

 b

a r c h a r t t

  • i

l l u s t r a t e a p a r t i c u l a r s c h e d u l e

 fj

g u r e s h

  • w

s b a t c h s c h e d u l e

Process

Arrival Time Burst Time P1 8 P2 1 4 P3 1 10 P4 6 2

P1 P2 P3 P4

8 12 22 24

slide-11
SLIDE 11

11

Deterministic Modeling Example

 S

u p p

  • s

e w e h a v e p r

  • c

e s s e s A , B , a n d C , s u b m i t t e d a t t i m e .

 We

w a n t t

  • k

n

  • w

t h e r e s p

  • n

s e t i m e , w a i t i n g t i m e , a n d t u r n a r

  • u

n d t i m e

  • f

p r

  • c

e s s A

A B C A B C A C A C Time response time = 0 + + wait time turnaround time

slide-12
SLIDE 12

12

Deterministic Modeling Example

 S

u p p

  • s

e w e h a v e p r

  • c

e s s e s A , B , a n d C , s u b m i t t e d a t t i m e .

 We

w a n t t

  • k

n

  • w

t h e r e s p

  • n

s e t i m e , w a i t i n g t i m e , a n d t u r n a r

  • u

n d t i m e

  • f

p r

  • c

e s s B .

A B C A B C A C A C Time response time + wait time turnaround time

slide-13
SLIDE 13

13

Deterministic Modeling Example

 S

u p p

  • s

e w e h a v e p r

  • c

e s s e s A , B , a n d C , s u b m i t t e d a t t i m e .

 We

w a n t t

  • k

n

  • w

t h e r e s p

  • n

s e t i m e , w a i t i n g t i m e , a n d t u r n a r

  • u

n d t i m e

  • f

p r

  • c

e s s C

A B C A B C A C A C Time response time + + + wait time turnaround time

slide-14
SLIDE 14

14

Method for Evaluating CPU Scheduling Algorithms (2)

 Q

u e u e i n g m

  • d

e l s

 a

n a l y t i c a l l y m

  • d

e l t h e q u e u e b e h a v i

  • r

( u n d e r s

  • m

e a s s u m p t i

  • n

s )

 i

n v

  • l

v e s a l

  • t
  • f

c

  • m

p l i c a t e d m a t h

 c

a n

  • n

l y h a n d l e a l i m i t e d n u m b e r

  • f

d i s t r i b u t i

  • n

s a n d a l g

  • r

i t h m s

 m

a y n

  • t

b e v e r y a c c u r a t e b e c a u s e

  • f

u n r e a l i s t i c a s s u m p t i

  • n

s

 S

i m u l a t i

  • n

s

 g

e t a w

  • r

k l

  • a

d i n f

  • r

m a t i

  • n

f r

  • m

a s y s t e m

 s

i m u l a t e t h e s c h e d u l i n g a l g

  • r

i t h m

 c

  • m

p u t e t h e p e r f

  • r

m a n c e m e t r i c s

 t

i m e a n d s p a c e i n t e n s i v e

 i

s p r a c t i c a l l y t h e b e s t e v a l u a t i

  • n

m e t h

  • d
slide-15
SLIDE 15

15

Simulation Illustration

slide-16
SLIDE 16

16

Scheduling Algorithms

 F

i r s t C

  • m

e , F i r s t S e r v e d ( F C F S )

 S

h

  • r

t e s t J

  • b

F i r s t ( S J F )

 P

r i

  • r

i t y B a s e d

 R

  • u

n d R

  • b

i n ( R R )

 M

u l t i l e v e l Q u e u e S c h e d u l i n g

 M

u l t i l e v e l F e e d b a c k Q u e u e S c h e d u l i n g

slide-17
SLIDE 17

17

First Come, First Served Scheduling

 A

s s i g n s t h e C P U b a s e d

  • n

t h e

  • r

d e r

  • f

t h e r e q u e s t s .

 I

m p l e m e n t e d u s i n g a F I F O q u e u e .

 N

  • p

r e e m p t i

  • n

 A

d v a n t a g e s

 s

t r a i g h t f

  • r

w a r d , s i m p l e t

  • w

r i t e a n d u n d e r s t a n d

 D

i s a d v a n t a g e s

 a

v e r a g e w a i t i n g t i m e m a y b e t

  • l
  • n

g

 h

u g e v a r i a t i

  • n

b a s e d

  • n

w h e n p r

  • c

e s s e s a r r i v e

 c

a n n

  • t

b a l a n c e C P U

  • b
  • u

n d a n d I / O

  • b
  • u

n d p r

  • c

e s s e s

 c

  • n

v

  • y

e fg e c t , s h

  • r

t p r

  • c

e s s b e h i n d l

  • n

g p r

  • c

e s s

 c

a n n

  • t

b e u s e d f

  • r

t i m e

  • s

h a r i n g s y s t e m s

slide-18
SLIDE 18

18

FCFS Scheduling Example

 S

u p p

  • s

e t h a t t h e p r

  • c

e s s e s a r r i v e i n t h e

  • r

d e r : P

1

, P

2

, P

3

 Wa

i t i n g t i m e f

  • r

P

1

= ; P

2

= 2 4 ; P

3

= 2 7

 A

v e r a g e w a i t i n g t i m e : ( + 2 4 + 2 7 ) / 3 = 1 7

P

1

P

2

P

3

2 4 2 7 3

Process

Arrival Time Burst Time P1 24 P2 3 P3 3

slide-19
SLIDE 19

19

FCFS Scheduling (2)

S u p p

  • s

e t h a t t h e p r

  • c

e s s e s a r r i v e i n t h e

  • r

d e r P

2

, P

3

, P

1

 T

h e G a n t t c h a r t f

  • r

t h e s c h e d u l e i s :

 Wa

i t i n g t i m e f

  • r

P

1

= 6 ; P

2

=

;

P

3

= 3

 A

v e r a g e w a i t i n g t i m e : ( 6 + + 3 ) / 3 = 3

 M

u c h b e t t e r t h a n p r e v i

  • u

s c a s e

 b

u t l a r g e v a r i a t i

  • n

P

1

P

3

P

2

6 3 3

slide-20
SLIDE 20

20

Shortest Job First (SJF) Scheduling

 O

r d e r e a c h p r

  • c

e s s b a s e d

  • n

t h e l e n g t h

  • f

i t s n e x t C P U b u r s t

 A

l l

  • c

a t e C P U t

  • t

h e p r

  • c

e s s f r

  • m

t h e f r

  • n

t

  • f

t h e l i s t

 s

h

  • r

t e s t n e x t C P U b u r s t

 A

d v a n t a g e s

 S

J F i s

  • p

t i m a l

 a

c h i e v e s m i n i m u m a v e r a g e w a i t i n g t i m e f

  • r

a g i v e n s e t

  • f

p r

  • c

e s s e s

 D

i s a d v a n t a g e s

 d

i ffj c u l t t

  • k

n

  • w

t h e l e n g t h

  • f

t h e n e x t C P U r e q u e s t

 c

a n a s k t h e u s e r , w h

  • m

a y n

  • t

k n

  • w

a n y b e t t e r !

 m

  • d

e l

  • b

a s e d p r e d i c t i

  • n

 c

a n l e a d t

  • p

r

  • c

e s s s t a r v a t i

  • n
slide-21
SLIDE 21

21

Example of SJF

 S

J F s c h e d u l i n g c h a r t

 A

v e r a g e w a i t i n g t i m e = ( 3 + 1 6 + 9 + ) / 4 = 7

P

4

P

3

P

1

3 1 6 9 P

2

2 4

Process

Arrival Time Burst Time P1 6 P2 8 P3 7 P4 3

slide-22
SLIDE 22

22

Estimate Length of Next CPU Burst

 C

a n

  • n

l y e s t i m a t e t h e l e n g t h

 n

e x t C P U b u r s t s i m i l a r t

  • p

r e v i

  • u

s C P U b u r s t s ?

 h

  • w

r e l e v a n t i s t h e h i s t

  • r

y

  • f

p r e v i

  • u

s C P U b u r s t s ?

 C

a l c u l a t e d a s a n e x p

  • n

e n t i a l a v e r a g e

  • f

t h e p r e v i

  • u

s C P U b u r s t s f

  • r

t h e p r

  • c

e s s

 F

  • r

m u l a :

: Define 4. 1 , 3. burst CPU next the for value predicted 2. burst CPU

  • f

length actual 1.    

  

1 n th n

n t

 

. 1

1 n n n

t       

slide-23
SLIDE 23

23

Estimate Length of the Next CPU Burst (2)

 

=

 n

+ 1

= n

 R

e c e n t h i s t

  • r

y d

  • e

s n

  • t

c

  • u

n t

 

= 1

n

+ 1

=  t

n

 O

n l y t h e a c t u a l l a s t C P U b u r s t c

  • u

n t s

 I

f w e e x p a n d t h e f

  • r

m u l a , w e g e t : n

+ 1

=  t

n

+ ( 1

  • )

 t

n

  • 1

+ … + ( 1

)

j

 t

n

  • j

+ … + ( 1

)

n + 1

0

 S

i n c e b

  • t

h  a n d ( 1

  • )

a r e l e s s t h a n

  • r

e q u a l t

  • 1

, e a c h s u c c e s s i v e t e r m h a s l e s s w e i g h t t h a n i t s p r e d e c e s s

  • r
slide-24
SLIDE 24

24

Estimate Length of the Next CPU Burst (3)

slide-25
SLIDE 25

25

Preemptive SJF Scheduling

 N

e w s h

  • r

t e r p r

  • c

e s s c a n p r e e m p t l

  • n

g e r c u r r e n t r u n n i n g p r

  • c

e s s

 S

h

  • r

t e s t R e m a i n i n g T i m e F i r s t s c h e d u l i n g c h a r t :

 A

v e r a g e w a i t i n g t i m e = 6 . 5

Process

Arrival Time Burst Time P1 8 P2 1 4 P3 2 9 P4 3 5

P1 P2 P4 P1 P3

1 5 10 17 26

slide-26
SLIDE 26

26

Priority Scheduling

 A

p r i

  • r

i t y n u m b e r a s s

  • c

i a t e d w i t h e a c h p r

  • c

e s s

 C

P U a l l

  • c

a t e d t

  • t

h e p r

  • c

e s s w i t h t h e h i g h e s t p r i

  • r

i t y

 e

q u a l p r i

  • r

i t y p r

  • c

e s s e s s c h e d u l e d i n F C F S

  • r

d e r

 I

n t e r n a l l y d e t e r m i n e d p r i

  • r

i t i e s

 t

i m e l i m i t , m e m

  • r

y r e q u i r e m e n t s , e t c

 S

J F u s e s n e x t C P U b u r s t f

  • r

i t s p r i

  • r

i t y ( h

  • w

? )

 E

x t e r n a l l y s p e c i fj e d p r i

  • r

i t i e s

 p

r

  • c

e s s i m p

  • r

t a n c e , u s e r

  • l

e v e l , e t c

 C

a n b e p r e e m p t i v e

  • r

n

  • n
  • p

r e e m p t i v e

 T

e x t u s e s l

  • w

n u m b e r s f

  • r

h i g h p r i

  • r

i t i e s

slide-27
SLIDE 27

27

Priority Scheduling (2)

 A

d v a n t a g e s

 p

r i

  • r

i t i e s c a n b e m a d e a s g e n e r a l a s n e e d e d

 D

i s a d v a n t a g e

 l

  • w

p r i

  • r

i t y p r

  • c

e s s m a y n e v e r e x e c u t e ( i n d e fj n i t e b l

  • c

k i n g

  • r

s t a r v a t i

  • n

)

 A

g i n g

 t

e c h n i q u e t

  • p

r e v e n t s t a r v a t i

  • n

 i

n c r e a s e p r i

  • r

i t y

  • f

p r

  • c

e s s e s w i t h t i m e

slide-28
SLIDE 28

28

Round Robin Scheduling (RR)

 R

  • u

n d r

  • b

i n a l g

  • r

i t h m

 a

r r a n g e j

  • b

s i n F C F S

  • r

d e r

 a

l l

  • c

a t e C P U t

  • t

h e fj r s t j

  • b

i n t h e q u e u e f

  • r
  • n

e t i m e

  • s

l i c e

 p

r e e m p t j

  • b

, a d d i t t

  • t

h e e n d

  • f

t h e q u e u e

 a

l l

  • c

a t e C P U t

  • t

h e n e x t j

  • b

a n d c

  • n

t i n u e . . .

 O

n e t i m e s l i c e i s c a l l e d a t i m e q u a n t u m

 I

s b y d e fj n i t i

  • n

p r e e m p t i v e

 c

a n b e c

  • n

s i d e r e d a s F C F S w i t h p r e e m p t i

  • n

 A

d v a n t a g e s – s i m p l e , a v

  • i

d s s t a r v a t i

  • n

 D

i s a d v a n t a g e s

 m

a y i n v

  • l

v e a l a r g e c

  • n

t e x t s w i t c h

  • v

e r h e a d

 h

i g h e r a v e r a g e w a i t i n g t i m e t h a n S J F

 a

n I / O b

  • u

n d p r

  • c

e s s

  • n

a h e a v i l y l

  • a

d e d s y s t e m w i l l r u n m

  • r

e s l

  • w
slide-29
SLIDE 29

29

Example of RR with Time Quantum = 4

 T

h e G a n t t s c h e d u l i n g c h a r t i s :

 A

v e r a g e w a i t i n g t i m e = 5 . 6 6

P

1

P

2

P

3

P

1

P

1

P

1

P

1

P

1

4 7 1 1 4 1 8 2 2 2 6 3

Process

Burst Times P1 24 P2 3 P3 3

slide-30
SLIDE 30

30

Round Robin Scheduling (2)

 P

e r f

  • r

m a n c e

 d

e p e n d s

  • n

t h e l e n g t h

  • f

t h e t i m e q u a n t u m

 l

a r g e t i m e q u a n t u m → F C F S l i k e b e h a v i

  • r

 s

m a l l t i m e q u a n t u m → l a r g e c

  • n

t e x t s w i t c h

  • v

e r h e a d

 G

e n e r a l l y ,

 t

i m e q u a n t a r a n g e f r

  • m

1 – 1 m i l l i s e c

  • n

d s

 c

  • n

t e x t s w i t c h t i m e i s l e s s t h a n 1 m i c r

  • s

e c

  • n

d s

 R

R h a s l a r g e r w a i t i n g t i m e , b u t p r

  • v

i d e s b e t t e r r e s p

  • n

s e t i m e f

  • r

i n t e r a c t i v e s y s t e m s

 T

u r n a r

  • u

n d t i m e d e p e n d s

  • n

t h e s i z e

  • f

t h e t i m e q u a n t u m

slide-31
SLIDE 31

31

Turnaround Time Varies With The Time Quantum

slide-32
SLIDE 32

32

Multilevel Queue

 R

e a d y q u e u e i s p a r t i t i

  • n

e d i n t

  • s

e p a r a t e q u e u e s : f

  • r

e g r

  • u

n d ( i n t e r a c t i v e ) b a c k g r

  • u

n d ( b a t c h )

 E

a c h q u e u e h a s i t s

  • w

n s c h e d u l i n g a l g

  • r

i t h m

 f

  • r

e g r

  • u

n d – R R

 b

a c k g r

  • u

n d – F C F S

 S

c h e d u l i n g m u s t b e d

  • n

e b e t w e e n t h e q u e u e s

 F

i x e d p r i

  • r

i t y s c h e d u l i n g ; ( i . e . , s e r v e a l l f r

  • m

f

  • r

e g r

  • u

n d t h e n f r

  • m

b a c k g r

  • u

n d ) . P

  • s

s i b i l i t y

  • f

s t a r v a t i

  • n

.

 T

i m e s l i c e – e a c h q u e u e g e t s a c e r t a i n a m

  • u

n t

  • f

C P U t i m e w h i c h i t c a n s c h e d u l e a m

  • n

g s t i t s p r

  • c

e s s e s ; i . e . , 8 % t

  • f
  • r

e g r

  • u

n d i n R R

 2

% t

  • b

a c k g r

  • u

n d i n F C F S

slide-33
SLIDE 33

33

Multilevel Queue Scheduling

 U

s e d w h e n

 p

r

  • c

e s s e s c a n b e e a s i l y c l a s s i fj e d i n t

  • g

r

  • u

p s

 e

a c h g r

  • u

p h a s a d i fg e r e n t s c h e d u l i n g r e q u i r e m e n t

 A

l g

  • r

i t h m

 p

a r t i t i

  • n

r e a d y q u e u e i n t

  • m

u l t i p l e q u e u e s

 d

e t e r m i n e s

  • m

e s c h e d u l i n g a l g

  • r

i t h m f

  • r

e a c h p r

  • c

e s s e s i n e a c h q u e u e

 F

C F S , S J F , R R , e t c .

 d

e t e r m i n e i n t e r

  • q

u e u e s c h e d u l i n g

 fj

x e d p r i

  • r

i t y , fj x e d C P U u t i l i z a t i

  • n

p e r q u e u e , e t c .

 p

e r m a n e n t l y a s s i g n a p r

  • c

e s s t

  • a

p a r t i c u l a r q u e u e

slide-34
SLIDE 34

34

Multilevel Queue Scheduling Example

 E

x a m p l e : f

  • r

e g r

  • u

n d V s . b a c k g r

  • u

n d p r

  • c

e s s e s

 f

  • r

e g r

  • u

n d a r e i n t e r a c t i v e , b a c k g r

  • u

n d a r e b a t c h p r

  • c

e s s e s

 f

  • r

e g r

  • u

n d h a v e p r i

  • r

i t y

  • v

e r b a c k g r

  • u

n d

 i

n t r a

  • q

u e u e s c h e d u l i n g

 f

  • r

e g r

  • u

n d – r e s p

  • n

s e t i m e , F C F S – n

  • s

t a r v a t i

  • n

 f

  • r

e g r

  • u

n d – R R , b a c k g r

  • u

n d – F C F S

 s

c h e d u l i n g b e t w e e n t h e q u e u e s

 fj

x e d p r i

  • r

i t y s c h e d u l i n g ; f

  • r

e g r

  • u

n d – h i g h e r p r i

  • r

i t y

 t

i m e s l i c e ; 8 % t

  • f
  • r

e g r

  • u

n d i n R R , 2 % t

  • b

a c k g r

  • u

n d i n F C F S

slide-35
SLIDE 35

35

Multilevel Queue Scheduling Example (2)

slide-36
SLIDE 36

36

Multilevel Feedback Queue Scheduling

 A

l l

  • w

s p r

  • c

e s s t

  • m
  • v

e b e t w e e n q u e u e s

 u

s e d t

  • d

y n a m i c a l l y s

  • r

t p r

  • c

e s s b a s e d

  • n

t h e i r t y p i c a l C P U b u r s t s

 A

l g

  • r

i t h m

 m

u l t i p l e q u e u e s w i t h d i fg e r e n t fj x e d p r i

  • r

i t i e s

 r

  • u

n d r

  • b

i n a t e a c h p r i

  • r

i t y l e v e l

 r

u n h i g h e s t p r i

  • r

i t y j

  • b

s fj r s t ,

  • n

c e t h

  • s

e fj n i s h , r u n n e x t h i g h e s t p r i

  • r

i t y , e t c

 j

  • b

s s t a r t i n t h e h i g h e s t p r i

  • r

i t y q u e u e

 i

f t i m e s l i c e e x p i r e s , d r

  • p

t h e j

  • b

b y

  • n

e l e v e l

 i

f t i m e s l i c e d

  • e

s n

  • t

e x p i r e , p u s h t h e j

  • b

u p b y

  • n

e l e v e l

slide-37
SLIDE 37

37

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 0 Time

A B C

2 5 9

slide-38
SLIDE 38

38

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 1 Time

A B C

3 7

A

1

slide-39
SLIDE 39

39

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 2 Time

A B C

4 3

A

1

B

slide-40
SLIDE 40

40

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 3 Time

A B C

6 3

A

1

B C

slide-41
SLIDE 41

41

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 3 Time

A B C

6 3

A

1

B C

Suppose A is blocked on I/O

slide-42
SLIDE 42

42

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 3 Time

B C

5 2

A B C

Suppose A is blocked on I/O

slide-43
SLIDE 43

43

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 5 Time

A B C

3

A

1

B C

Suppose A is returned from I/O

slide-44
SLIDE 44

44

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 6 Time

A B C

3

A B C

slide-45
SLIDE 45

45

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 8 Time

A B C

3

A B C C

slide-46
SLIDE 46

46

Example of Multilevel Feedback Queues

 P

r i

  • r

i t y ( t i m e s l i c e = 1 ) :

 P

r i

  • r

i t y 1 ( t i m e s l i c e = 2 ) :

 P

r i

  • r

i t y 2 ( t i m e s l i c e = 4 ) :

time = 9 Time

A B C A B C C

slide-47
SLIDE 47

47

Multilevel Feedback Queues

 A

p p r

  • x

i m a t e s S R T F

 a

C P U

  • b
  • u

n d j

  • b

d r

  • p

s l i k e a r

  • c

k

 I

/ O

  • b
  • u

n d j

  • b

s s t a y n e a r t h e t

  • p

 S

t i l l u n f a i r f

  • r

l

  • n

g r u n n i n g j

  • b

s

 c

  • u

n t e r

  • m

e a s u r e : A g i n g

 i

n c r e a s e t h e p r i

  • r

i t y

  • f

l

  • n

g r u n n i n g j

  • b

s i f t h e y a r e n

  • t

s e r v i c e d f

  • r

a p e r i

  • d
  • f

t i m e

 t

r i c k y t

  • t

u n e a g i n g

slide-48
SLIDE 48

48

Lottery Scheduling

 A

d a p t i v e s c h e d u l i n g a p p r

  • a

c h t

  • a

d d r e s s t h e f a i r n e s s p r

  • b

l e m

 A

l g

  • r

i t h m

 e

a c h p r

  • c

e s s

  • w

n s s

  • m

e t i c k e t s

 o

n e a c h t i m e s l i c e , a t i c k e t i s r a n d

  • m

l y p i c k e d

 o

n a v e r a g e , t h e a l l

  • c

a t e d C P U t i m e i s p r

  • p
  • r

t i

  • n

a l t

  • t

h e n u m b e r

  • f

t i c k e t s g i v e n t

  • e

a c h j

  • b

 T

  • a

p p r

  • x

i m a t e S J F , s h

  • r

t j

  • b

s g e t m

  • r

e t i c k e t s

 T

  • a

v

  • i

d s t a r v a t i

  • n

, e a c h j

  • b

g e t s a t l e a s t

  • n

e t i c k e t

slide-49
SLIDE 49

49

Lottery Scheduling Example

 S

h

  • r

t j

  • b

s : 1 t i c k e t s e a c h

 L

  • n

g j

  • b

s : 1 t i c k e t e a c h

# short jobs/# long jobs % of CPU for each short job % of CPU for each long job 1/1 91% 9% 0/2 0% 50% 2/0 50% 0% 10/1 10% 1% 1/10 50% 5%

slide-50
SLIDE 50

50

Thread Scheduling

 O

n s y s t e m s s u p p

  • r

t i n g t h r e a d s

 k

e r n e l t h r e a d s a r e t h e r e a l s c h e d u l i n g e n t i t i e s

 u

s e r t h r e a d s n e e d t

  • b

e m a p p e d t

  • k

e r n e l t h r e a d s f

  • r

e x e c u t i

  • n

 s

c h e d u l i n g a t t r i b u t e s m a y b e s e t a t t h r e a d c r e a t i

  • n

 C

  • n

t e n t i

  • n
  • s

c

  • p

e

 P

T H R E A D _ S C O P E _ P R O C E S S

 g

r

  • u

p u s e r t h r e a d s t

  • c
  • n

t e n d f

  • r

c

  • m

m

  • n

k e r n e l t h r e a d ( s )

 P

T H R E A D _ S C O P E _ S Y S T E M

 d

i r e c t l y a s s i g n t

  • k

e r n e l t h r e a d , c

  • n

t e n d s w i t h

  • t

h e r k e r n e l t h r e a d s

 i

n h e r i t s c h e d

 P

T H R E A D _ I N H E R I T _ S C H E D

 i

n h e r i t s c h e d u l i n g p

  • l

i c y a n d p r i

  • r

i t y f r

  • m

p a r e n t t h r e a d

 P

T H R E A D _ E X P L I C I T _ S C H E D

 e

x p l i c i t l y s p e c i f y s c h e d u l i n g p

  • l

i c y a n d p r i

  • r

i t y

  • f

t h e n e w t h r e a d

slide-51
SLIDE 51

51

Thread Scheduling (2)

 s

c h e d p

  • l

i c y

 S

C H E D _ O T H E R

 r

e g u l a r n

  • n
  • r

e a l

  • t

i m e s c h e d u l i n g

 S

C H E D _ R R

 r

e a l

  • t

i m e r

  • u

n d

  • r
  • b

i n s c h e d u l i n g

 S

C H E D _ F I F O

 r

e a l

  • t

i m e F C F S s c h e d u l i n g

 s

c h e d p a r a m

 s

e t / g e t t h e p r i

  • r

i t y

  • f

t h e t h r e a d

 A

l l p a r a m e t e r s

  • n

l y r e l e v a n t

 i

f t h r e a d l i b r a r y s u p p

  • r

t s n

  • n
  • n

e

  • t
  • n

e u s e r l e v e l t h r e a d s

 f

  • r

r e a l

  • t

i m e s c h e d u l i n g

slide-52
SLIDE 52

52

Pthread Scheduling Example

int main(int argc, char *argv[]){ int i; pthread t tid[5]; pthread attr t attr; pthread attr init(&attr); /* get the default attributes */ /* set the scheduling algorithm to PROCESS or SYSTEM */ pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM); /* set the scheduling policy - FIFO, RT, or OTHER */ pthread attr setschedpolicy(&attr, SCHED OTHER); for (i = 0; i < 5; i++) pthread create(&tid[i],&attr,runner,NULL); for (i = 0; i < NUM THREADS; i++) pthread join(tid[i], NULL); } void *runner(void *param){ printf("I am a thread\n"); pthread exit(0); }

slide-53
SLIDE 53

53

Multiple-Processor Scheduling Issues

 M

u l t i p r

  • c

e s s

  • r

S c h e d u l i n g

 a

s y m m e t r i c m u l t i p r

  • c

e s s i n g

 o

n l y

  • n

e p r

  • c

e s s

  • r

a c c e s s e s t h e s y s t e m d a t a s t r u c t u r e s

 s

i m p l e

 s

y m m e t r i c m u l t i p r

  • c

e s s i n g ( S M P )

 e

a c h p r

  • c

e s s

  • r

i s s e l f

  • s

c h e d u l i n g

 n

e e d t

  • m

a i n t a i n s c h e d u l e r d a t a s t r u c t u r e s s y n c h r

  • n

i z a t i

  • n

 P

r

  • c

e s s

  • r

a ffj n i t y

 p

r

  • c

e s s h a s a ffj n i t y f

  • r

p r

  • c

e s s

  • r
  • n

w h i c h i t i s c u r r e n t l y r u n n i n g

 r

e d u c e m e m

  • r

y a n d c a c h e

  • v

e r h e a d

 m

e m

  • r

y a ffj n i t y i m p

  • r

t a n t f

  • r

N U M A a r c h i t e c t u r e s

 s

  • f

t a n d h a r d p r

  • c

e s s

  • r

a ffj n i t y

 h

  • w

s t r i c t l y O S m a i n t a i n s a ffj n i t y p

  • l

i c y

slide-54
SLIDE 54

54

NUMA and CPU Scheduling

slide-55
SLIDE 55

55

Multiple-Processor Scheduling Issues

 L

  • a

d b a l a n c i n g

 k

e e p w

  • r

k l

  • a

d e v e n l y d i s t r i b u t e d a c r

  • s

s a l l C P U s

 i

m p

  • r

t a n t i f e a c h p r

  • c

e s s

  • r

h a s i t s

  • w

n q u e u e

  • f

r e a d y p r

  • c

e s s e s

 p

u s h a n d p u l l m i g r a t i

  • n

 p

u s h

  • r

p u l l t a s k s t

  • w

a r d s i d l e p r

  • c

e s s

  • r

s

 M

u l t i c

  • r

e p r

  • c

e s s

  • r

s

 m

u l t i p l e p r

  • c

e s s

  • r

c

  • r

e s

  • n

s a m e p h y s i c a l c h i p

 u

n i f

  • r

m m e m

  • r

y a c c e s s , f a s t e r i n t e r c

  • r

e c

  • m

m u n i c a t i

  • n

 m

a y b e s i m u l t a n e

  • u

s l y m u l t i t h r e a d e d ( S M T ,

  • r

h y p e r t h r e a d e d )

 i

n s t r u c t i

  • n

s f r

  • m

m u l t i p l e t h r e a d s s i m u l t a n e

  • u

s l y l i v e i n d i fg e r e n t p i p e l i n e s t a g e s

 O

S g i v e n a v i e w

  • f
  • n

e p r

  • c

e s s

  • r

p e r h a r d w a r e t h r e a d

 m

a y r e d u c e m e m

  • r

y s t a l l s

 m

a y i n c r e a s e r e s

  • u

r c e c

  • n

t e n t i

  • n
slide-56
SLIDE 56

56

Case Studies: Solaris Scheduling

 P

r i

  • r

i t y

  • b

a s e d s c h e d u l i n g

 S

i x c l a s s e s

 r

e a l t i m e , s y s t e m , f a i r s h a r e , fj x e d p r i

  • r

i t y , t i m e s h a r , a n d i n t e r a c t i v e ( i n

  • r

d e r

  • f

p r i

  • r

i t y )

 d

i fg e r e n t p r i

  • r

i t i e s a n d s c h e d u l i n g a l g

  • r

i t h m s i n d i fg e r e n t c l a s s e s

 T

h e d e f a u l t c l a s s i s t i m e s h a r i n g

 u

s e s m u l t i l e v e l f e e d b a c k q u e u e w i t h v a r i a b l e t i m e s l i c e s

 i

n v e r s e r e l a t i

  • n

s h i p b e t w e e n p r i

  • r

i t i e s a n d t i m e s l i c e s

 g

  • d

r e s p

  • n

s e t i m e f

  • r

i n t e r a c t i v e p r

  • c

e s s e s a n d g

  • d

t h r

  • u

g h p u t f

  • r

C P U

  • b
  • u

n d p r

  • c

e s s e s

 s

e e t h e d i s p a t c h t a b l e

slide-57
SLIDE 57

57

Solaris Dispatch Table

slide-58
SLIDE 58

58

Case Studies: Solaris Scheduling (2)

 R

e a l

  • t

i m e s c h e d u l i n g c l a s s

 h

i g h e s t p r i

  • r

i t y , b

  • u

n d e d t i m e r e s p

  • n

s e

 s

h

  • u

l d b e c a r e f u l b e f

  • r

e p u t t i n g a p r

  • c

e s s i n t h i s c l a s s

 S

y s t e m s c h e d u l i n g c l a s s

 r

e s e r v e d f

  • r

k e r n e l t h r e a d s ( s c h e d u l i n g a n d p a g i n g d a e m

  • n

)

 F

i x e d p r i

  • r

i t y s c h e d u l i n g c l a s s

 p

r i

  • r

i t i e s n

  • t

d y n a m i c a l l y a d j u s t e d

 F

a i r s h a r e s c h e d u l i n g c l a s s

 b

a s e d

  • n

l

  • t

t e r y s c h e d u l i n g

 p

r

  • c

e s s e s g r

  • u

p e d i n t

  • p

r

  • j

e c t s ; e a c h p r

  • j

e c t a s s i g n e d s

  • m

e n u b m e r

  • f

l

  • t

t e r y t

  • k

e n s

 p

r

  • c

e s s e s w i t h i n e a c h p r

  • j

e c t s h a r e t h e t

  • k

e n f a i r l y

 P

r

  • c

e s s c l a s s p r i

  • r

i t i e s c

  • n

v e r t e d t

  • g

l

  • b

a l p r i

  • r

i t i e s

slide-59
SLIDE 59

59

Map to Global Priorities