Sunteți pe pagina 1din 42

Facultatea: Automatic i Calculatoare

Domeniul: Calculatoare i Tehnologia Informaiei

An universitar: 2014 2015

Sisteme de Operare

Planificarea proceselor

Funcionarea unui planificator


Implementarea unui planificator
Algoritmi de planificare

Planificarea proceselor
Planificarea este funcia principal a sistemelor de operare.
Aproape toate resursele unui sistem de calcul sunt
planificate naintea utilizrii
Datorit naturii unor constrngeri relative la consumul de
resurse, problema planificrii se reduce la gsirea unui
algoritm eficient pentru gestionarea accesului i utilizarea
resurselor pe baza unei metrici de performan.
Tipurile de resurse luate n calcul sunt timpul CPU i
capacitatea memoriei.
Clasificare:

planificare uniprocesor (task-uri cu resurse independente sau


partajate)
planificare multiprocesor:

planificare static
planificare dinamic

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

2/42

Planificarea proceselor

problema planificrii uniprocesor poate fi


privit ca o problem de cutare:

avem n procese < p1, p2, pn > i vrem s gsim


o secven de execuie astfel nct toate procesele
s se poat executa.

Alocarea proceselor este diferit de planificare:

alocarea se refer la task-uri cu resurse


independente, deci nu se realizeaz preceden
ntre ele
planificarea se refer la procese care au resurse
partajate deci i relaii de preceden.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

3/42

Planificarea proceselor

Planificarea static:

exist un set de procese < p1, p2, pn >.

Se obine o planificare a proceselor pe sistemul


multiprocesor dat n aa numita faz de testare a
fezabilitii planificrii, procesele se vor executa exact
n ordinea stabilit de aceast planificare fr ca n
timpul rulrii proceselor s apar elemente
necunoscute despre procese.

Planificarea dinamic:

se pot varia caracteristicile (constrngerile) proceselor


odat cu apariia unor noi procese.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

4/42

Deciziile de planificare
1.Cnd un proces trece din
starea running n starea
waiting (cerere I/O, crearea
unui proces fiu sau ateptarea
terminrii acestuia);
2.Cnd un proces trece din
starea running n starea ready
(cnd apare o ntrerupere);
3.Cnd un proces trece din
starea waiting n starea ready
(terminarea unei operaii
I/O);
4.Cnd un proces este terminat.

[SO - 2014-2015]

Doar n cazurile 1 i 4,
atunci planificarea
este nepreemptiv;
altfel, planificarea este
preemptiv.

Curs 6 - Planificarea proceselor

5/42

Planificarea nepreemptiv
odat ce procesorul a fost alocat unui
proces, procesul pstreaz CPU pn cnd
se termin sau pn cnd trece ntr-o
stare de wait
este folosit n cazul MSDOS, Windows
3.11
nu necesit existena unui timer

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

6/42

Planificarea preemptiv

necesit costuri suplimentare:

fie cazul a dou procese A i B care partajeaz


o dat;

[SO - 2014-2015]

procesul A poate fi n mijlocul operaiei de modificare


a datei cnd este preemptat i procesul B ruleaz;
procesul B poate ncerca s citeasc data care n
momentul respectiv nu este consistent.
n acest caz este necesar introducerea de
mecanisme suplimentare pentru coordonarea
accesului la resursa comun.

Curs 6 - Planificarea proceselor

7/42

Planificarea preemptiv i kernelul

are influen i asupra proiectrii


kernelului sistemului de operare.

n timpul procesrii unui apel sistem, kernelul


poate fi ocupat cu o activitate asupra
comportamentului unui proces, ceea ce poate
duce la modificarea unor date ale kernelului
(cozile I/O).
Ce se poate ntmpla dac procesul este
preemptat n mijlocul acestor modificri i
kernelul are nevoie s citeasc sau s modifice
datele?

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

8/42

Planificarea preemptiv i kernelul


ntreruperile pot interveni oricnd
nu pot fi tot timpul ignorate de kernel
seciunile de cod afectate de ntreruperi
trebuie protejate mpotriva utilizrii
simultane (concurente) de mai multe
procese.

se inhib (disable) tratarea ntreruperilor la


intrarea n seciunea critic (utilizarea datelor)
i se reactiveaz (enable) la ieire .

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

9/42

Niveluri de planificare
Planificarea pe termen lung
Planificarea pe termen mediu
Planificarea pe termen scurt

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

10/42

Planificarea pe termen lung


are drept sarcin alegerea job-ului ce va fi
executat, alocarea resurselor necesare i
crearea proceselor.
ruleaz cu frecvena cea mai mic i
trebuie s separe tipurile de job-uri n
funcie de solicitri.
La unele sisteme poate avea un rol minim
sau poate lipsi (la sistemele time-sharing)

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

11/42

Planificarea pe termen mediu


Planificatorul pe tremen mediu este cel care decide
momentele n care se fac evaluri, procesele care se
evacueaz i care se readuc n memorie pentru continuarea
execuiei.
Stabilitatea sistemelor de tip time-sharing depinde de
resursele sistemului de calcul i de aceea la aceste sisteme
se aplic tehnica de swapping prin care procesele sunt
trecute din starea run n swap i din swap n ready.
Prin aceste evacuri temporare, gradul de multiprogramare
scade i se prelungete durata execuiei, dar se permite
accesul simultan al mai multor utilizatori n sistem.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

12/42

Planificarea pe termen scurt


are n vedere trecerea alternativ a
proceselor din starea ready n starea run
i invers.
Tot la acest nivel se desfoar i
activitatea dispecerului de procesoare.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

13/42

Cozile de ateptare ale


planificatorului

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

14/42

Strile proceselor i tipul planificrii

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

15/42

Planificare proceselor - Metrici

timpul de ateptare al unui proces: este


timpul ct un proces ateapt n coada de
execuie

T
[SO - 2014-2015]

t wait ( pi )
wait =

i=1

Curs 6 - Planificarea proceselor

16/42

Planificare proceselor - Metrici

timpul de ciclare reprezint timpul din momentul


crerii procesului (intrare n coada gata de
execuie) pn n momentul terminrii execuiei

t ciclare ( p i ) =t wait ( p i ) + ( p i )
( pi )

- timpul de execuie
n

T
[SO - 2014-2015]

t ciclare ( p i )
ciclare=

i=1

- timpul de ciclare mediu


Curs 6 - Planificarea proceselor

17/42

ncrcarea CPU

1
=

[SO - 2014-2015]

- rata medie de sosire a noilor procese

n coada de execuie
- rata medie de deservire a proceselor (
1/ este timpul mediu de execuie)
Dac <1 (<) avem cazul n care se
poate aplica un algoritm de planificare
(ncrcare normale) stare stabil.
Dac >1 (>), atunci unitatea central
va fi saturat indiferent de algoritmul de
planificare.
Dac =1 (=), lista de execuie nu este
suficient de lung.
Algoritmii ce vor fi prezentai se vor referi
la cazul <1 (<).
Curs 6 - Planificarea proceselor

18/42

Funcionarea unui planificator

descrierea funcionrii unui planificator trebuie


avute n vedere dou aspecte:

regulile de aciune
implementarea n contextul sistemului de operare.

Fixarea sarcinilor unui planificator, indiferent de


nivelul la care acioneaz, se face preciznd:

modalitatea de intervenie
funcia de prioritate
regula de arbitraj

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

19/42

Funcionarea unui planificator


Modalitatea de intervenie

stabilete momentele n care planificatorul


intr n aciune

momentele impuse de proces

atunci cnd un proces i termin activitatea sau


cnd ateapt terminarea unor operaii de I/O planificatorul este partajat;
planificatorul este apelat de procese ca un
subprogram

momentele impuse de SO

[SO - 2014-2015]

SO intervine indiferent de starea proceselor pe care


le planific planificatorul este master.

Curs 6 - Planificarea proceselor

20/42

Funcionarea unui planificator


Funcia de prioritate

are ca argumente procesele i parametrii


sistemului.
Determinarea prioritii se face avnd n
vedere criterii cum ar fi:

cererea de memorie,
atingerea unui timp de servire de ctre CPU,
timpul real din sistem,
timpul total de servire,
valorile prioritilor externe,
necesarul de timp rmas pn la terminarea
procesului etc.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

21/42

Funcionarea unui planificator


Funcia de prioritate

Algoritmii de planificare trebuie s ndeplineasc


urmtoarele criterii:

s realizeze scopurile de performan pentru care au fost elaborai;


s aib o durat foarte mic de execuie, pentru a nu crete n
mod nejustificat timpul de execuie alocat SO.

Exist multe metode matematice de planificare care dau


soluia optim n nite restricii date
Proiectanii de sisteme de operare prefer algoritmi
euristici, mai simpli i cu rezultate mai mult sau mai puin
apropiate de cea optim, deoarece un model sofisticat
consum mai mult timp fcnd s creasc timpul alocat SO,
deci randamentul global s scad.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

22/42

Funcionarea unui planificator


Regula de arbitraj

stabilete o ordine n caz de prioriti


egale:

servirea n ordine cronologic


servirea circular sau aleatoare.

Observaie: Informaiile legate de starea


proceselor care trebuiesc planificate sunt
obinute din PCB-ul fiecrui proces.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

23/42

Implementarea unui planificator

Toate tipurile de planificatoare sunt implementate prin


intermediul semafoarelor i folosesc facilitile oferite de
gestiunea memoriei.
n funcie de tipul sistemului de operare, planificatoarele dein
module specializate de alocare i eliberare a resurselor,
prevenire, detectare i ieire din blocaje.
Conceptele de multiprogramare i programare n timp real
sunt implementate cu ajutorul planificrii pe termen scurt.
Tot la acest nivel are loc selectarea proceselor candidate la
resursele disponibile.
La nivel mediu este potrivit s se modifice prioritile
proceselor, dac SO permite aceast facilitate.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

24/42

Algoritmi de planificare
Criterii de evaluare

Utilizarea CPU
Rspunsul (troughput)
Numrul de procese terminate n unitatea de timp
Timpul de ciclare (turnaround) timpul mediu de la sosirea
unui proces pn la terminarea lui
Timp de ateptare (waiting time) n lista gata de execuie
Timpul de rspuns (response time) timpul mediu de la
sosirea proceselor pn la prima execuie
Eficiena planificatorului = overhead-ul introdus de planificator.
Reprezentarea proceselor se va face cu ajutorul diagramelor
Gantt.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

25/42

Algoritmi de planificare
FCFS (First-Come, First-served)
Procesele sunt planificate pe msura sosirii lor n
coada gata de execuie.
Procesorul este alocat procesului care l cere primul.
Algoritmul mai este denumit i FIFO.
Unitatea de msur a performanei este timpul mediu
de ateptare.
n acest caz pri(i) = ti , unde ti este momentul cnd
sosete n coada gata de execuie. Dac pentru dou
procese i i j, avem pri(i) < pri(j) atunci ti < tj .

n general vom spune ca un proces este de prioritate


cu att mai mare cu ct valoarea pri(i) este mai
mic.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

26/42

Algoritmi de planificare
FCFS (First-Come, First-served)

Pentru FCFS planificarea se va face n


funcie de prioritatea maxim. Lista gata
de execuie va fi o list FIFO.
gata de executie

sheduler

planificare

CPU

FIFO

blocate

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

27/42

Algoritmi de planificare
FCFS (First-Come, First-served)

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

28/42

Algoritmi de planificare
Shortest-Job-First (SJF) nepreemptiv

Procesul planificat pentru execuie este


procesul cu timpul de execuie cel mai
mic. Acest algoritm se mai numete i
Shortest-Job-Next (SJN).

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

29/42

Algoritmi de planificare
Shortest-Job-First (SJF) preemptiv

Procesul planificat pentru execuie este procesul cu


timpul de execuie rmas cel mai mic. Acest algoritm
mai este numit i Shortest Remaining Time First.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

30/42

Algoritmi de planificare
PS (Priority Scheduling)
Fiecare proces are asociat prioritate, fiind
lansate n execuie de la prioritatea cea mai
mic la prioritatea cea mai mare.
Este cel mai folosit algoritm.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

31/42

Algoritmi de planificare
PS (Priority Scheduling)

Se poate introduce un mecanism de prioriti dinamice, n care


pe msur ce timpul de ateptare crete, va crete i prioritatea.
Aceast situaie este ntlnit la Unix - se oprete periodic (la
fiecare secund) activitatea sistemului i se recalculeaz
prioritatea fiecrui proces.
Astfel se garanteaz un timp mediu de rspuns rezonabil pentru
fiecare proces din sistem, dar nu se asigur rspuns prompt la o
execuie secvenial.
Prioritile se stabilesc astfel:

job-ul primete prioritatea la intrarea n sistem i o pstreaz pn la


sfrit ( este posibil s apar fenomenul de nfometare, dac apar
multe procese cu prioritate mare);
SO calculeaz prioritile dup reguli proprii i le ataeaz dinamic
proceselor n execuie. Aceast variant este folosit la planificarea pe
termen mediu.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

32/42

Algoritmi de planificare
Round-Robin (RR)
este un algoritm preemptiv destinat sistemelor de tip timesharing i se bazeaz pe distribuirea n mod egal a timpului de
procesare ntre procese.
Este folosit o cuant de timp q (cu valori ntre 10 i 100
milisecunde) pe durata creia sunt executate pe rnd pri din
fiecare proces.
Dac se introduce i timpul consumat c prin schimbarea
contextului, fiecare proces va primi de fapt c+q uniti de timp.
Unele procese se pot termina nainte de expirarea cuantei de
timp, moment n care se invoca planificatorul care reface
prioritile, reseteaz cuanta de timp i replanific procesele.
Replanificarea are loc i la apariia unui proces nou.
Algoritmul RR se implementeaz folosind ntreruperea de ceas a
sistemului respectiv.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

33/42

Algoritmi de planificare
Round-Robin (RR)
Dac cuanta de timp q este mai mare algoritmul tinde
ctre FCFS.
Algoritmul RR funcioneaz cel mai bine cnd 80% din
procese au timpii de execuie mai mari dect cuanta q.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

34/42

Algoritmi de planificare
Round-Robin (RR)

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

35/42

Algoritmi de planificare

Highest Response Ratio Next (HRRN)

Este ales procesul cu cea mai mare rat de


deservire (response ratio rr):
n general sunt favorizate procesele cu durata de
execuie cea mai mic. Dac ateptarea procesului
crete, atunci crete i valoarea ratei de deservire.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

36/42

Algoritmi de planificare

Algoritmul
Feedback

[SO - 2014-2015]

este folosit atunci cnd nu


se cunoate timpul de care
mai are nevoie un proces
ca s-i termine execuia.
Sunt penalizate procesele
care ruleaz prea mult i
poate duce la apariia
fenomenului de
nfometare (process/
resource starvation) dac
nu variem algoritmii de
planificare i prioritile n
funcie de cozile de
ateptare.

Curs 6 - Planificarea proceselor

37/42

Algoritmi de planificare

Planificarea cu listele multinivel

Este o combinaie ntre:

algoritmii bazai pe prioriti,


Round-Robin i
algoritmi folosii pentru tratarea proceselor de aceeai prioritate (HRRN).

Presupunem c lista gata de execuie este format din n


subliste n care procesele au prioritile ntre 1 i m.
n acest caz procesul Pi din sublista k va avea prioritatea
k.
Pentru a nltura dezavantajul unui timp de ateptare
mare pentru subliste apropiate de n se poate folosi o
schem de planificare care s favorizeze subliste de mare
prioritate (algoritmi nepreemptivi n liste i ntre liste
algoritmi preemptivi).

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

38/42

Planificarea cu listele multinivel


new

q = 10

terminated

If 8
q = 20

q=8

Priority 0
If > 8
If 16

q = 16
If > 16

q = 40
FCFS

FCFS

[SO - 2014-2015]

Priority 1

Procese
care intr
n coad

Curs 6 - Planificarea proceselor

Priority 2

Procese care se
termin sau sunt
mutate n alt coad

39/42

Inversarea prioritii
apare atunci cnd un proces de prioritate
sczut acceseaz o seciune critic apoi
un proces de prioritate mare acceseaz i
el SC respectiv i se blocheaz.
procese de prioritate intermediar vor
mpiedica de asemenea primul proces (de
prioritatea cea mai sczut) s deblocheze
seciunea critic.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

40/42

Prevenirea inversrii prioritii

Se folosete motenirea prioritii:

de fiecare dat cnd un proces deine o SC


pentru care ateapt i alte procese i se acord
respectivului proces maximul prioritii
proceselor aflate n ateptare.
Problema este c motenirea prioritii
micoreaz eficiena algoritmului de planificare
i crete overhead-ul ( i se da prioritate
maxima ca s nu fie preemptat i s termine
lucrul cu SC ).

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

41/42

Prevenirea inversrii prioritii

Preempia poate interaciona cu sincronizarea ntr-un


context multiprocesor genernd un alt efect nedorit numit
efectul de convoi:

un proces acceseaz o seciune critic dup care se suspend.


Alte procese care au nevoie de seciunea critic vor trebui
suspendate pn cnd primul se va trezi (va fi reactivat) i va
termina seciunea critic.
n acel moment toate procesele suspendate din cauza sincronizrii
vor fi trezite ncercnd pe baza prioritii s acceseze seciunea
critic.
Astfel, se creeaz efectul de convoi.

n general, efectul de convoi apare cnd o mulime de


procese au nevoie de o resurs pentru un timp scurt, iar un
altul deine resursa pentru un timp mult mai lung blocndule pe primele.

[SO - 2014-2015]

Curs 6 - Planificarea proceselor

42/42

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