Sunteți pe pagina 1din 19

2.

PROCESE I FIRE DE EXECUIE





2.1. Procese
2.2. Fire de execuie
2.3. Comunicarea dintre procese (InterProcess Communication IPC)
2.4. Probleme clasice de comunicare interprocese
2.5. Planificarea proceselor





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

2
2
2
.
.
5
5
5
.
.
.
1
1
1
.
.


A
A
A
l
l
l
g
g
g
o
o
o
r
r
r
i
i
i
t
t
t
m
m
m
i
i
i


d
d
d
e
e
e


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


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

i ncadrarea planificrilor tratate n acest capitol







7
2
2
2
.
.
.
5
5
5
.
.
1
1
1
.
.
.


A
A
A
l
l
l
g
g
g
o
o
o
r
r
r
i
i
i
t
t
t
m
m
m
i
i
i


d
d
d
e
e
e


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


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 poate fi aplicat cu succes.



17

A2. Earliest Deadline First Scheduling (EDFS)
algoritm preemptiv de planificare dinamic
nu impune ca procesele s fie periodice sau s utilizeze aceeai durat de timp
CPU la fiecare execuie

Cnd un proces are nevoie de timp CPU, i anun intenia, specificnd i termenul limit.
Planificatorul menine o list a proceselor gata de execuie, sortat pe baza termenelor
limit.
Algoritmul de planificare va executa procesul din list cu cel mai apropiat termen limit.
Ori de cte ori un proces trece n starea gata de execuie se verific dac termenul limit al
acestuia este mai mic dect termenul limit al procesului n execuie.
n caz afirmativ, noul proces preempteaz procesul n execuie.

Algoritmul EDFS lucreaz corect pentru orice set planificabil de procese i poate atinge un
grad de utilizare a procesorului de 100%.


18

19
Exemplu:
proc. A: = 30ms, = 15ms, 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

3
1
15 15 5 117
0,975 1
30 40 50 120
i
i i
C
P
=
= + + = = < sistem planificabil




Algoritmul RMS nu poate fi aplicat, singura soluie fiind aplicarea algoritmului EDFS.

S-ar putea să vă placă și