Documente Academic
Documente Profesional
Documente Cultură
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
c
c
c
u
u
u
p
p
p
r
r
r
e
e
e
l
l
l
u
u
u
c
c
c
r
r
r
a
a
a
r
r
r
e
e
e
p
p
p
e
e
e
l
l
l
o
o
o
t
t
t
u
u
u
r
r
r
i
i
i
. .
. .
. .
A1. Primul sosit, primul servit (First-Come First-Served ) (FCFS)
A2. Shortest job first (SJF)
A3. Shortest Remainning Time Next (SRTN)
2
2
2
.
.
5
5
5
.
.
.
2
2
2
.
.
P
P
P
l
l
l
a
a
a
n
n
n
i
i
i
f
f
f
i
i
i
c
c
c
a
a
a
r
r
r
e
e
e
a
a
a
p
p
p
r
r
r
o
o
o
c
c
c
e
e
e
s
s
s
e
e
e
l
l
l
o
o
o
r
r
r
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
i
i
i
n
n
n
t
t
t
e
e
e
r
r
r
a
a
a
c
c
c
t
t
t
i
i
i
v
v
v
e
e
e
A1. Planificarea Round Robin (RR)
A2. Planificare bazat pe prioriti (Priority Scheduling)
A3. Shortest Job Next (SJN)
2
2
2
.
.
5
5
5
.
.
.
3
3
3
.
.
P
P
P
l
l
l
a
a
a
n
n
n
i
i
i
f
f
f
i
i
i
c
c
c
a
a
a
r
r
r
e
e
e
a
a
a
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
d
d
d
e
e
e
t
t
t
i
i
i
m
m
m
p
p
p
r
r
r
e
e
e
a
a
a
l
l
l
A1. Rate Monotonic Scheduling (RMS)
A2. Earliest Deadline First Scheduling (EDFS)
2
2
2
.
.
5
5
.
.
P
P
l
l
a
a
n
n
i
i
f
f
i
i
c
c
a
a
r
r
e
e
a
a
p
p
r
r
o
o
c
c
e
e
s
s
e
e
l
l
o
o
r
r
Planificatorul de procese (eng. scheduler): aceea parte a SO care decide ce proces intr n
starea n execuie algoritm de planificare
Clasificarea proceselor:
a) procese computaionale (eng. CPU-bound processes) (fig. a)
b) procese I/O (I/O-bound processes) (fig. b)
Din punct de vedere al planificrii sunt importante intervalele n care se utilizeaz CPU.
Figur: Alternarea perioadelor de utilizare a CPU cu cele de ateptare a datelor
de la dispozitiv de I/O pentru: (a) un proces computaional, (b) un proces de I/O.
3
Planificarea proceselor se impune n urmtoarele situaii:
a) dup crearea unui nou proces
trebuie luat decizia care proces (printe sau fiu) s fie executat
b) cnd un proces i termin execuia (exit)
trebuie ales un proces gata de execuie pentru a fi trecut n execuie
c) dac un proces se blocheaz datorit startrii unei operaii I/O, datorit unui semafor sau
dintr-un alt motiv
trebuie ales un alt proces pentru a fi trecut n execuie
d) dac un dispozitiv de I/O genereaz o ntrerupere, semnaliznd c dispozitivul a ncheiat
o operaie de I/O i procesul care a solicitat operaia i poate continua execuia
care proces trece n execuie: procesul care atepta dispozitivul de I/O, procesul
ntrerupt sau un alt proces?
4
Deciziile de planificare se pot lua la fiecare ntrerupere de ceas sau la fiecare k ntreruperi.
algoritmi nonpreemptivi: se alege un proces pentru execuie i este lsat s se execute pn
cnd se blocheaz sau cedeaz de bun voie procesorul;
algoritmi preemptivi: se alege un proces i este lsat s se execute pentru un anumit
interval de timp fixat. Dac la expirarea intervalului procesul nc se execut, acest proces
este suspendat i se trece n execuie un alt proces (dac exist).
Sisteme cu prelucrare pe loturi:
algoritmi nonpreemptivi
algoritmi preemptivi ce acord intervale mari pentru execuia unui proces
reducerea numrului de comutri ntre procese
creterea performanelor sistemului
Sisteme interactive:
numai algoritmi preemptivi
eliminarea situaiilor n care un proces pstreaz controlul CPU n mod abuziv,
mpiedicnd deservirea altor procese
5
Obiective generale ale algoritmului de planificare:
s fie corect (imparial), n sensul c procese comparabile (prin prisma rolurilor jucate n
sistem) trebuie s primeasc servicii comparabile (timp de utilizare a CPU)
s impun politicile sistemului
s optimizeze gradul de utilizare a componentelor sistemului de calcul
Obiective specifice:
sisteme cu prelucrare pe loturi:
s maximizeze numrul de joburi terminate de sistem ntr-o unitate de timp (eng. throughput)
s minimizeze timpul mediu de la sosirea unui job i pn la terminarea lui (eng. turnaround time)
s maximizeze gradul de utilizare a CPU
sisteme interactive:
s minimizeze timpul de rspuns (eng. response time)
s respecte principiul proporionalitii (s satisfac ateptrile utilizatorilor)
sisteme de timp real:
s asigure satisfacerea restriciilor de timp impuse (n scopul evitrii pierderilor de date)
s fie predictibili (n special n sistemele multimedia)
6
T
T
T
h
h
h
r
r
r
e
e
e
e
e
e
-
-
-
l
l
l
e
e
e
v
v
v
e
e
e
l
l
l
s
s
s
c
c
c
h
h
h
e
e
e
d
d
d
u
u
u
l
l
l
i
i
i
n
n
n
g
g
g
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
c
c
c
u
u
u
p
p
p
r
r
r
e
e
e
l
l
l
u
u
u
c
c
c
r
r
r
a
a
a
r
r
r
e
e
e
p
p
p
e
e
e
l
l
l
o
o
o
t
t
t
u
u
u
r
r
r
i
i
i
.
A1. Primul sosit, primul servit (First-Come First-Served ) (FCFS, FIFO)
cel mai simplu algoritm de planificare
algoritm nonpreemptiv
Procesorul este asignat proceselor n ordinea n care acestea l solicit.
Toate procesele gata de execuie sunt pstrate ntr-o coad (fir de ateptare).
Avantaj: poate fi neles i implementat cu uurin
Dezavantaj: poate duce la timpi de execuie foarte mari pentru unele procese
8
A2. Shortest job first (SJF)
algoritm nonpreemptiv
duratele de execuie a proceselor sunt cunoscute n avans
Dac mai multe procese sunt gata de execuie simultan, planificatorul alege (pentru
a trecere n execuie) procesul cu cea mai mic durat de execuie.
Exemplu:
FCFS SJF
A (8) B (6) C (4) D (2)
D (2) C(4) B (6) A (8)
mean turnaround time =
= (8+14+18+20)/4 = 15 min
mean turnaround time =
= (2+6+12+20)/4 = 10 min
Algoritmul SJF este optimal din punctul de vedere al duratei medii a unui ciclu de servire
numai n cazul n care toate joburile care trebuie servite sunt disponibile simultan.
Exemplu de joburi nedisponibile simultan:
A(3) B(5) disponibile la momentul 0
C(1) D(1) disponibile la momentul 4
Dac se folosete algoritmul SJF, se obine mean turnaround time = 5,5.
Ce ordine de execuie ar fi asigurat un mean turnaround time mai mic?
9
A3. Shortest Remainning Time Next (SRTN)
variant preemptiv a algoritmului SJF
durata total de servire a unui proces trebuie s fie cunoscut n avans
Planificatorul de procese alege (pentru a trece n execuie) procesul a crui durat
rezidual de servire este cea mai mic.
La sosirea unui nou job, durata total de servire a acestuia este comparat cu durata
rezidual de servire a procesului aflat n curs de servire.
Dac durata total de servire a noului job este mai mic, atunci procesul aflat n curs
de servire este suspendat i este trecut n execuie noul proces.
10
2
2
2
.
.
5
5
5
.
.
.
2
2
2
.
.
P
P
P
l
l
l
a
a
a
n
n
n
i
i
i
f
f
f
i
i
i
c
c
c
a
a
a
r
r
r
e
e
e
a
a
a
p
p
p
r
r
r
o
o
o
c
c
c
e
e
e
s
s
s
e
e
e
l
l
l
o
o
o
r
r
r
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
i
i
i
n
n
n
t
t
t
e
e
e
r
r
r
a
a
a
c
c
c
t
t
t
i
i
i
v
v
v
e
e
e
. .
A1. Planificarea Round Robin (RR)
cel mai utilizat algoritm preemptiv de planificare a proceselor
se presupune implicit c toate procesele sunt la fel de importante
Fiecare proces are asignat un interval de timp (cuant) q, pe care se poate executa.
Dac la sfritul unei cuante procesul este nc n execuie, procesorul este preemptat
i este atribuit altui proces.
Dac procesul se blocheaz sau se termin nainte de expirarea cuantei, procesorul
este comutat la un alt proces n momentul blocrii (terminrii).
urmtorul
proces
urmtorul
proces
(a) Lista proceselor de executat. (b) Lista proceselor de executat dup ce B i-a consumat cuanta.
Probleme: alegerea duratei cuantei q comparativ cu overhead (compromis!!)
B F D A F D A B
proces n
execu ie
proces n
execuie
11
A2. Planificare bazat pe prioriti (Priority Scheduling)
Fiecare proces primete o prioritate.
Dintre procesele gata de execuie se va trece n execuie procesul cu cea mai mare
prioritate.
exist variante nonpreemptive sau preemptive
Asignarea prioritilor:
static: prioriti asignate n conformitate cu ierarhia utilizatorilor proprietari
dinamic: atunci cnd trebuie ndeplinite anumite obiective
ex: se seteaz prioritatea unui proces la 1/f, cu f = procentul consumat din cuanta anterioar
Variante combinate:
Procesele pot fi grupate n clase de prioriti
Se utilizeaz un algoritm de planificare bazat pe prioriti la nivelul claselor
Se utilizeaz un algoritm RR n cadrul fiecrei clase
Dac nu se ajusteaz prioritile claselor, exist pericolul ca procesele din clasele mai puin
prioritare s nu se execute niciodat.
12
A3. Shortest Job Next (SJN)
variant a algoritmului SJF n sisteme interactive
care dintre procesele aflate n starea gata de execuie are timpul de execuie
cel mai mic?
la fiecare pas se estimeaz durata de execuie a proceselor urmnd a se lansa n execuie
procesul cu cea mai mic durat estimat
t
1
(1 )
n n n
t o o t
+
= + , cu (0,1) o e
1 n
t
+
: durata estimat a celei de-a (n+1) execuii a unui proces (job)
n
t : durata estimat a celei de-a n execuii a unui proces (job)
n
t : durata msurat a celei de-a n execuii a unui proces (job)
uzual: o =
mbtrnire (eng. aging): estimarea valorii urmtoare dintr-o serie pe baza mediei ponderate
a valorii msurate curente i a estimrii anterioare
Lottery scheduling
Fair-share scheduling
13
2
2
2
.
.
5
5
5
.
.
.
3
3
3
.
.
P
P
P
l
l
l
a
a
a
n
n
n
i
i
i
f
f
f
i
i
i
c
c
c
a
a
a
r
r
r
e
e
e
a
a
a
n
n
n
s
s
s
i
i
i
s
s
s
t
t
t
e
e
e
m
m
m
e
e
e
d
d
d
e
e
e
t
t
t
i
i
i
m
m
m
p
p
p
r
r
r
e
e
e
a
a
a
l
l
l
. .
Sistemele de timp real:
- cu restricii puternice asupra timpului (eng. hard real time systems)
- cu restricii slabe asupra timpului (eng. soft real time systems)
un program este divizat n mai multe procese, comportarea fiecruia fiind predictibil i
cunoscut apriori
la apariia unui eveniment extern, planificatorul trebuie s planifice procesele n aa fel nct
s fie respectate termenele limit.
Evenimente:
- evenimente periodice (au loc la intervale regulate de timp) (preponderente);
- evenimente aperiodice (au loc la momente de timp impredictibile).
Algoritmii de planificare pentru sistemele de timp real:
- algoritmi statici: alg. i stabilete regulile de planificare nainte de startarea sistemului
(algoritm preemptiv ce asigneaz prioriti fixe proceselor)
- algoritmi dinamici: alg. ia decizii legate de planificare n timpul rulrii sistemului.
14
Exemplu:
m evenimente periodice, evenimentul i apare cu perioada i necesit secunde din timpul
procesorului pentru a fi tratat
i
P
i
C
Gradul de utilizare a procesorului de ctre procesul i este
i i
C P , 1
i i
C P < .
Se spune c sistemul este planificabil dac
1
1
m
i
i i
C
U
P
=
= s
.
Se presupune c overhead-ul datorat comutrilor de context este neglijabil.
Algoritmul de planificare RMS respect toate restriciile de timp dac
( )
1
2 1
m
m
i
i i
C
U m
P
=
= s
.
Exemplu: m = 3,
evenimentul 1: P
1
= 100ms, C
1
= 50ms;
evenimentul 2: P
2
= 200ms, C
2
= 20ms;
evenimentul 3: P
3
= 500ms, C
3
= 80ms.
Sistemul este planificabil i algoritmul RMS respect restriciile de timp deoarece
( )
3
3
1
50 20 80
0, 76 3 2 1 0.779
100 200 500
i
i i
C
P
=
= + + = < =
.
15
A1. Rate Monotonic Scheduling (RMS)
algoritm preemptiv de planificare static ce poate fi utilizat pentru procese ce
satisfac urmtoarele condiii:
1. fiecare proces periodic trebuie s se termine n perioada sa (un proces periodic trateaz
un eveniment periodic);
2. procesele nu sunt dependente unele de altele i nu utilizeaz resurse partajate (resurse
hardware, cozi, semafoare, etc.);
3. fiecare proces necesit aceeai cantitate de timp CPU la fiecare execuie;
4. orice proces aperiodic nu are termen limit;
5. preempia unui proces se produce instantaneu i fr overhead.
RMS asigneaz fiecrui proces o prioritate egal cu frecvena de apariie a evenimentului
asociat.
n timpul rulrii sistemului, planificatorul trece n execuie cel mai prioritar proces gata de
executat, preemptnd, dac este necesar procesul curent n execuie.
RMS este algoritm static optimal.
16
Exemplu:
proc. A: = 30ms, = 10ms, priorit( ) =33
proc. B: = 40ms, = 15ms, priorit( ) =25
proc. C: = 50ms, = 5ms, priorit( ) =20
A A
B B
C C
P C A
P C B
P C C
prioriti statice
3
1
10 15 5 97
0,808 1
30 40 50 120
i
i i
C
P
=
= + + = = < sistem planificabil
Dei
( )
3
3
1
0,808 3 2 1 0.779
i i
i
C P
=
= > =
Algoritmul RMS nu poate fi aplicat, singura soluie fiind aplicarea algoritmului EDFS.