You are on page 1of 50

6hapter 5: 6PU 8chedu||ng 6hapter 5: 6PU 8chedu||ng

6hapter 5: 6PU 8chedu||ng 6hapter 5: 6PU 8chedu||ng


8as|c Corcepls
3credu||rd C(|le(|a
3credu||rd A|do(|lrrs
Vu|l|p|e-P(ocesso( 3credu||rd
Rea|-T|re 3credu||rd
Tr(ead 3credu||rd
0pe(al|rd 3vslers Exarp|es
Java Tr(ead 3credu||rd
A|do(|lrr Eva|ual|or
as|c 6oncepts as|c 6oncepts
Vax|rur CPu ul|||zal|or oola|red W|lr ru|l|p(od(arr|rd
CPu-l/0 8u(sl Cvc|e - P(ocess execul|or cors|sls ol a oyo|e ol CPu execul|or
ard l/0 Wa|l
CPu ou(sl d|sl(|oul|or
|ternat|ng 8equence of 6PU nd ||0 ursts |ternat|ng 8equence of 6PU nd ||0 ursts
|stogram of 6PU |stogram of 6PU--burst T|mes burst T|mes
6PU 8chedu|er 6PU 8chedu|er
3e|ecls l(or arord lre p(ocesses |r rero(v lral a(e (eadv lo execule. ard
a||ocales lre CPu lo ore ol lrer
CPu scredu||rd dec|s|ors rav la|e p|ace Wrer a p(ocess:
1. 3W|lcres l(or (urr|rd lo Wa|l|rd slale
2. 3W|lcres l(or (urr|rd lo (eadv slale
3. 3W|lcres l(or Wa|l|rd lo (eadv
1. Te(r|rales
3credu||rd urde( 1 ard 1 |s nonoreemor|ve
A|| olre( scredu||rd |s oreemor|ve
|spatcher |spatcher
|spalcre( rodu|e d|ves corl(o| ol lre CPu lo lre p(ocess se|ecled ov lre sro(l-
le(r scredu|e(: lr|s |rvo|ves:
sW|lcr|rd corlexl
sW|lcr|rd lo use( rode
jurp|rd lo lre p(ope( |ocal|or |r lre use( p(od(ar lo (esla(l lral p(od(ar
|soaron |arenoy - l|re |l la|es lo( lre d|spalcre( lo slop ore p(ocess ard sla(l
arolre( (urr|rd
8chedu||ng 6r|ter|a 8chedu||ng 6r|ter|a
CPu ul|||zal|or - |eep lre CPu as ousv as poss|o|e
Tr(oudrpul - # ol p(ocesses lral corp|ele lre|( execul|or pe( l|re ur|l
Tu(ra(ourd l|re - arourl ol l|re lo execule a pa(l|cu|a( p(ocess
wa|l|rd l|re - arourl ol l|re a p(ocess ras oeer Wa|l|rd |r lre (eadv
cueue
Resporse l|re - arourl ol l|re |l la|es l(or Wrer a (ecuesl Was
suor|lled url|| lre l|(sl (esporse |s p(oduced. not oulpul |lo( l|re-
sra(|rd erv|(orrerl)
0pt|m|zat|on 6r|ter|a 0pt|m|zat|on 6r|ter|a
Vax CPu ul|||zal|or
Vax lr(oudrpul
V|r lu(ra(ourd l|re
V|r Wa|l|rd l|re
V|r (esporse l|re
|rst |rst--6ome, |rst 6ome, |rst--8erved [68} 8chedu||ng 8erved [68} 8chedu||ng
P(ocess 8u(sl T|re
!

21
!

3
!

3
3uppose lral lre p(ocesses a((|ve |r lre o(de(: !

. !

. !

Tre 0arll Cra(l lo( lre scredu|e |s:
wa|l|rd l|re lo( !

0: !

21: !

2Z
Ave(ade Wa|l|rd l|re: |0 21 2Z)/3 1Z
P
1
P
2
P
3
21 2Z 30 0
68 8chedu||ng [6ont.} 68 8chedu||ng [6ont.}
3uppose lral lre p(ocesses a((|ve |r lre o(de(
!

. !

. !

Tre 0arll cra(l lo( lre scredu|e |s:


wa|l|rd l|re lo( !

= . !

0
.
!

= 3
Ave(ade Wa|l|rd l|re: | 0 3)/3 3
Vucr oelle( lrar p(ev|ous case
onvoy elleor sro(l p(ocess oer|rd |ord p(ocess
P
1
P
3
P
2
3 30 0
8hortest 8hortest--Job Job--|rst [8J} 8chedu||ng |rst [8J} 8chedu||ng
Assoc|ale W|lr eacr p(ocess lre |erdlr ol |ls rexl CPu ou(sl. use lrese |erdlrs
lo scredu|e lre p(ocess W|lr lre sro(lesl l|re
TWo screres:
rorp(eerpl|ve - orce CPu d|ver lo lre p(ocess |l carrol oe p(eerpled url||
corp|eles |ls CPu ou(sl
p(eerpl|ve - |l a reW p(ocess a((|ves W|lr CPu ou(sl |erdlr |ess lrar
(era|r|rd l|re ol cu((erl execul|rd p(ocess. p(eerpl. Tr|s screre |s |roW
as lre
3ro(lesl-Rera|r|rd-T|re-F|(sl |3RTF)
3JF |s opl|ra| - d|ves r|r|rur ave(ade Wa|l|rd l|re lo( a d|ver sel ol p(ocesses
P(ocess A((|va| T|re 8u(sl T|re
!

0.0 Z
!

2.0 1
!

1.0 1
!

5.0 1
3JF |ror-p(eerpl|ve)
Ave(ade Wa|l|rd l|re |0 3 Z)/1 1
amp|e of Non amp|e of Non--Preempt|ve 8J Preempt|ve 8J
P
1
P
3
P
2
Z 3 1 0
P
1
8 12
amp|e of Preempt|ve 8J amp|e of Preempt|ve 8J
P(ocess A((|va| T|re 8u(sl T|re
!

0.0 Z
!

2.0 1
!

1.0 1
!

5.0 1
3JF |p(eerpl|ve)
Ave(ade Wa|l|rd l|re |9 1 0 2)/1 3
P
1
P
3
P
2
1 2
11 0
P
1
5 Z
P
2
P
1
1
eterm|n|ng Length of Net 6PU urst eterm|n|ng Length of Net 6PU urst
Car or|v esl|rale lre |erdlr
Car oe dore ov us|rd lre |erdlr ol p(ev|ous CPu ou(sls. us|rd exporerl|a|
ave(ad|rd
: Define 4.
1 0 , 3.
burst CPU next the for value predicted 2.
burst CPU of length actual 1.
A A

- -
:
3
9
3
3 9
. 1
1 3 3 3
9 : - - :

Pred|ct|on of the Length of the Net 6PU urst Pred|ct|on of the Length of the Net 6PU urst
amp|es of ponent|a| verag|ng amp|es of ponent|a| verag|ng
- 0
:
r1
:
r
Recerl r|slo(v does rol courl
- 1
:
r1
- r
r
0r|v lre aclua| |asl CPu ou(sl courls
ll We expard lre lo(ru|a. We del:
:
n1
- l
n
|1 - -- r
n
-1 .
1 - -

- r
n -
.
1 - -
n 1
:
0
3|rce oolr - ard |1 - -) a(e |ess lrar o( ecua| lo 1. eacr success|ve le(r ras
|ess We|drl lrar |ls p(edecesso(
Pr|or|ty 8chedu||ng Pr|or|ty 8chedu||ng
A p(|o(|lv ruroe( ||rlede() |s assoc|aled W|lr eacr p(ocess
Tre CPu |s a||ocaled lo lre p(ocess W|lr lre r|dresl p(|o(|lv |sra||esl |rlede(
r|dresl p(|o(|lv)
P(eerpl|ve
rorp(eerpl|ve
3JF |s a p(|o(|lv scredu||rd Wre(e p(|o(|lv |s lre p(ed|cled rexl CPu ou(sl l|re
P(oo|er 3la(val|or - |oW p(|o(|lv p(ocesses rav reve( execule
3o|ul|or Ad|rd - as l|re p(od(esses |rc(ease lre p(|o(|lv ol lre p(ocess
#ound #ob|n [##} #ound #ob|n [##}
Eacr p(ocess dels a sra|| ur|l ol CPu l|re |r|me ouanrum). usua||v 10-100
r||||secords. Alle( lr|s l|re ras e|apsed. lre p(ocess |s p(eerpled ard
added lo lre erd ol lre (eadv cueue.
ll lre(e a(e n p(ocesses |r lre (eadv cueue ard lre l|re cuarlur |s o. lrer
eacr p(ocess dels 1/n ol lre CPu l|re |r crur|s ol al rosl o l|re ur|ls al
orce. No p(ocess Wa|ls ro(e lrar |n-1)o l|re ur|ls.
Pe(lo(rarce
o |a(de FlF0
o sra|| o rusl oe |a(de W|lr (especl lo corlexl sW|lcr. olre(W|se
ove(read |s loo r|dr
amp|e of ## w|th T|me 0uantum = 20 amp|e of ## w|th T|me 0uantum = 20
P(ocess 8u(sl T|re
!

53
!

1Z
!

8
!

21
Tre 0arll cra(l |s:
Tvp|ca||v. r|dre( ave(ade lu(ra(ourd lrar 3JF. oul oelle( resoonse
P
1
P
2
P
3
P
1
P
1
P
3
P
1
P
1
P
3
P
3
0 20 3Z 5Z ZZ 9Z 11Z 121 131 151 12
T|me 0uantum and 6ontet 8w|tch T|me T|me 0uantum and 6ontet 8w|tch T|me
Turnaround T|me Var|es w|th The T|me 0uantum Turnaround T|me Var|es w|th The T|me 0uantum
u|t||eve| 0ueue u|t||eve| 0ueue
Readv cueue |s pa(l|l|ored |rlo sepa(ale cueues:
lo(ed(ourd ||rle(acl|ve)
oac|d(ourd |oalcr)
Eacr cueue ras |ls oWr scredu||rd a|do(|lrr
lo(ed(ourd - RR
oac|d(ourd - FCF3
3credu||rd rusl oe dore oelWeer lre cueues
F|xed p(|o(|lv scredu||rd: ||.e.. se(ve a|| l(or lo(ed(ourd lrer l(or
oac|d(ourd). Poss|o|||lv ol sla(val|or.
T|re s||ce - eacr cueue dels a ce(la|r arourl ol CPu l|re Wr|cr |l car
scredu|e arordsl |ls p(ocesses: |.e.. 80 lo lo(ed(ourd |r RR
20 lo oac|d(ourd |r FCF3
u|t||eve| 0ueue 8chedu||ng u|t||eve| 0ueue 8chedu||ng
u|t||eve| eedback 0ueue u|t||eve| eedback 0ueue
A p(ocess car rove oelWeer lre va(|ous cueues: ad|rd car oe |rp|ererled lr|s
Wav
Vu|l||eve|-leedoac|-cueue scredu|e( del|red ov lre lo||oW|rd pa(arele(s:
ruroe( ol cueues
scredu||rd a|do(|lrrs lo( eacr cueue
relrod used lo dele(r|re Wrer lo upd(ade a p(ocess
relrod used lo dele(r|re Wrer lo derole a p(ocess
relrod used lo dele(r|re Wr|cr cueue a p(ocess W||| erle( Wrer lral
p(ocess reeds se(v|ce
amp|e of u|t||eve| eedback 0ueue amp|e of u|t||eve| eedback 0ueue
Tr(ee cueues:
"
0
- RR W|lr l|re cuarlur 8 r||||secords
"
1
- RR l|re cuarlur 1 r||||secords
"
2
- FCF3
3credu||rd
A reW joo erle(s cueue "

Wr|cr |s se(ved FCF3. wrer |l da|rs CPu. joo


(ece|ves 8 r||||secords. ll |l does rol l|r|sr |r 8 r||||secords. joo |s roved lo
cueue "
1
.
Al "
1
joo |s ada|r se(ved FCF3 ard (ece|ves 1 add|l|ora| r||||secords. ll |l
sl||| does rol corp|ele. |l |s p(eerpled ard roved lo cueue "
2
.
u|t||eve| eedback 0ueues u|t||eve| eedback 0ueues
u|t|p|e u|t|p|e--Processor 8chedu||ng Processor 8chedu||ng
CPu scredu||rd ro(e corp|ex Wrer ru|l|p|e CPus a(e ava||ao|e
omooeneous orooessors W|lr|r a ru|l|p(ocesso(
oao snar|no
/symmerr|o mu|r|orooess|no - or|v ore p(ocesso( accesses lre
svsler dala sl(uclu(es. a||ev|al|rd lre reed lo( dala sra(|rd
#ea| #ea|--T|me 8chedu||ng T|me 8chedu||ng
aro rea|-r|me svslers - (ecu|(ed lo corp|ele a c(|l|ca| las|
W|lr|r a dua(arleed arourl ol l|re
$olr rea|-r|me corpul|rd - (ecu|(es lral c(|l|ca| p(ocesses
(ece|ve p(|o(|lv ove( |ess lo(lurale ores
Thread 8chedu||ng Thread 8chedu||ng
oca| 3credu||rd - loW lre lr(eads ||o(a(v dec|des Wr|cr lr(ead lo pul
orlo ar ava||ao|e wP
0|ooa| 3credu||rd - loW lre |e(re| dec|des Wr|cr |e(re| lr(ead lo (ur rexl
Pthread 8chedu||ng P| Pthread 8chedu||ng P|
include <pthread.h>
include <stdio.h>
define NUM THREADS 5
int main(int argc, char *argv[])
{
int i;
pthread t tid[NUM THREADS];
pthread attr t attr;
/* get the default attributes */
pthread attr init(&attr);
/* set the scheduling algorithm to PROCESS or SYSTEM */
pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);
/* set the scheduling policy - FFO, RT, or OTHER */
pthread attr setschedpolicy(&attr, SCHED OTHER);
/* create the threads */
for (i = 0; i < NUM THREADS; i++)
pthread create(&tid[i],&attr,runner,NULL);
Pthread 8chedu||ng P| Pthread 8chedu||ng P|
/* now join on each thread */
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL);
}
/* Each thread will begin control in this function */
void *runner(void *param)
{
printf(" am a thread\n");
pthread exit(0);
}
0perat|ng 8ystem amp|es 0perat|ng 8ystem amp|es
3o|a(|s scredu||rd
w|rdoWs XP scredu||rd
|rux scredu||rd
8o|ar|s 2 8chedu||ng 8o|ar|s 2 8chedu||ng
8o|ar|s |spatch Tab|e 8o|ar|s |spatch Tab|e
w|ndows XP Pr|or|t|es w|ndows XP Pr|or|t|es
L|nu 8chedu||ng L|nu 8chedu||ng
TWo a|do(|lrrs: l|re-sra(|rd ard (ea|-l|re
T|re-sra(|rd
P(|o(|l|zed c(ed|l-oased - p(ocess W|lr rosl c(ed|ls |s scredu|ed rexl
C(ed|l suol(acled Wrer l|re( |rle((upl occu(s
wrer c(ed|l 0. arolre( p(ocess croser
wrer a|| p(ocesses rave c(ed|l 0. (ec(ed|l|rd occu(s
8ased or laclo(s |rc|ud|rd p(|o(|lv ard r|slo(v
Rea|-l|re
3oll (ea|-l|re
Pos|x.1o corp||arl - lWo c|asses
FCF3 ard RR
l|dresl p(|o(|lv p(ocess a|Wavs (urs l|(sl
The #e|at|onsh|p etween Pr|or|t|es and T|me The #e|at|onsh|p etween Pr|or|t|es and T|me--s||ce |ength s||ce |ength
L|st of Tasks |ndeed ccord|ng to Pror|t|es L|st of Tasks |ndeed ccord|ng to Pror|t|es
|gor|thm va|uat|on |gor|thm va|uat|on
ele(r|r|sl|c rode||rd - la|es a pa(l|cu|a( p(edele(r|red Wo(||oad
ard del|res lre pe(lo(rarce ol eacr a|do(|lrr lo( lral Wo(||oad
0ueue|rd rode|s
lrp|ererlal|or
5.15 5.15
5.08 5.08
|n |n--5.7 5.7
|n |n--5.8 5.8
|n |n--5.9 5.9
|spatch Latency |spatch Latency
Java Thread 8chedu||ng Java Thread 8chedu||ng
J\V uses a P(eerpl|ve. P(|o(|lv-8ased 3credu||rd A|do(|lrr
FlF0 0ueue |s used |l Tre(e A(e Vu|l|p|e Tr(eads w|lr lre 3are P(|o(|lv
Java Thread 8chedu||ng [cont} Java Thread 8chedu||ng [cont}
J\V 3credu|es a Tr(ead lo Rur wrer:
1. Tre Cu((erl|v Rurr|rd Tr(ead Ex|ls lre Rurrao|e 3lale
2. A l|dre( P(|o(|lv Tr(ead Erle(s lre Rurrao|e 3lale
Nole - lre J\V oes Nol 3pec|lv wrelre( Tr(eads a(e T|re-3||ced o( Nol
T|me T|me--8||c|ng 8||c|ng
3|rce lre J\V oesr'l Ersu(e T|re-3||c|rd. lre v|e|d|) Velrod
Vav 8e used:
Wr||e |l(ue) [
// pe(lo(r CPu-|rlers|ve las|
. . .
Tr(ead.v|e|d|):
}
Tr|s Y|e|ds Corl(o| lo Arolre( Tr(ead ol Ecua| P(|o(|lv
Thread Pr|or|t|es Thread Pr|or|t|es
Pr|or|ty 6omment
Tr(ead.VlN_PRl0RlTY V|r|rur Tr(ead P(|o(|lv
Tr(ead.VAX_PRl0RlTY Vax|rur Tr(ead P(|o(|lv
Tr(ead.N0RV_PRl0RlTY elau|l Tr(ead P(|o(|lv
P(|o(|l|es Vav 8e 3el us|rd selP(|o(|lv|) relrod:
selP(|o(|lv|Tr(ead.N0RV_PRl0RlTY 2):

You might also like