Sunteți pe pagina 1din 30

1/30

Cristian Vidracu
http://www.info.uaic.ro/~vidrascu
Sisteme de Operare
Gestiunea proceselor partea I
/30
!uprins

!onceptul de proces

St"rile procesului

#ela$ii %ntre procese

&rocese concurente

&lanificarea proceselor
3/30
!onceptul de proces

&roces 'tas() *o+,


Job : un pro-ram %n curs de e.ecu/ie) fiind o secven/"
format" din unul sau mai multe procese
Proces : o entitate activ" 'dinamic", a S.O.0ului) fiind
unitatea de lucru %ntr0un sistem de calcul

1n proces include) printre alte resurse:


2ona de cod 'ce con/ine codul pro-ramului,
2ona de date 'ce con/ine varia+ilele -lo+ale,
stiva de lucru 'ce con/ine informa/ii temporare)
e.-. parametrii su+rutinelor) adresele de return) varia+ilele temporare,
3/30
St"rile procesului /1

&e parcursul e.ecu/iei sale) un proces %4i


schim+" starea

5iecare proces 'mai e.act) fir de e.ecu/ie, poate fi


%ntr0una din urm"toarele st"ri:
running '%n e.ecu/ie,
waiting '%n a4teptare,
ready '-ata de e.ecu/ie,

6n orice moment) un sin-ur proces poate fi %n


starea runnin- '%n ca2ul sistemelor uniprocesor,
7/30
St"rile procesului /
waitin-
read8
runnin-
creare
proces
terminare
proces
planificare
deplanificare
apel
sistem
terminare
apel sistem
9/30
:locul de control al procesului

PCB '&rocess !ontrol :loc(, este o structur" de


date repre2ent;nd un proces %n cadrul S.O.0ului)
ce p"strea2" urm"toarele informa/ii:
I<0ul procesului 'i.e. &I<0ul,
&I<0ul procesului p"rinte 'cel care a creat respectivul proces,
starea procesului
contorul de pro-ram 'program counter, 4i ceilal/i re-i4tri !&1
directorul curent de lucru= linia de comand"= varia+ilele de mediu
drepturile de acces la resursele sistemului
fi4ierele deschise de respectivul proces
informa/ii de planificare a !&1
informa/ii de -estiune a memoriei
informa/ii pentru raport"ri 'accounting,
informa/ii despre starea I/>
4.a.
?/30
#ela/ii %ntre procese /1

1n proces este independent dac" nu poate


afecta 4i nici nu poate fi afectat de celelalte
procese ce se e.ecut" %n sistem
@stareaA procesului nu este parta*at" de alte procese
e.ecu/ia procesului este determinist" 'depinde %n
%ntre-ime numai de datele de intrare,
e.ecu/ia procesului este reproducti+il" 're2ultatul
e.ecu/iei va fi mereu acela4i pentru acelea4i date de
intrare,
e.ecu/ia procesului poate fi suspendat" 4i apoi
poate fi reluat" f"r" a cau2a efecte nedorite
B/30
#ela/ii %ntre procese /

1n proces este cooperant dac" poate afecta


sau poate fi afectat de celelalte procese ce se
e.ecut" %n sistem
@stareaA procesului este parta*at" de alte procese
re2ultatul e.ecu/iei procesului nu poate fi prev"2ut
%n avans
re2ultatul e.ecu/iei procesului este nedeterminist
'nu depinde numai de datele de intrare,
C/30
#ela/ii %ntre procese /3

<e ce se utili2ea2" mai multe procese / thread0uri D


&entru a captura activit"/i natural concurente %n
cadrul sistemului pro-ramat
E Fratarea evenimentelor asincrone
&entru a c;4ti-a vite2" de e.ecu/ie 'speedup, prin
suprapunerea activit"/ilor de calcul cu cele de I/>
sau prin e.ploatarea hardware0ului paralel
10/30
#ela/ii %ntre procese /3

G+stracti2area thread define4te un sin-ur


flu. secven/ial de instruc/iuni
'contor pro-ram) stiv") valori re-i4tri,
1n thread este unitatea de +a2" de utili2are a !&1
&oate fi suportat de nucleul S.O.0ului
'e.-. OS/) Hindows IF/000/J&/003/Kista/00B/?/B...) 1IIJ,

Proces resursa conte.t) cu rol de @containerA


pentru unul sau mai multe thread0uri
'spa/iu de adrese parta*at de c"tre acestea,
11/30
#ela/ii %ntre procese /7
Fhread
Fhread Fhread
Gddress Space
Gddress Space
Fhread &rocess
1/30
&rocese concurente /1

&rocese multiple pot fi multipro-ramate pe un


sin-ur !&1

Lotive:
parta*area resurselor fi2ice
parta*area resurselor lo-ice
cre4terea vite2ei de calcul 'speedup computa/ional,
modularitate
comoditate de utili2are a sistemului
13/30
&rocese concurente /
int pid=
int status M 0=
if 'pid M for(',,
N /O parent O/
......
pid M wait 'Pstatus,=
Q
else
N /O child O/
......
e.it'status,=
Q

!rearea 4i
terminarea
proceselor
'modelul
1ni.,

&rocese p"rinte 4i fiu


Primitiva fork returneaz zero
fiului i PID-ul fiului printelui
Fork creeaz o copie
exact a procesului printe
Printele folosete wait pentru a
dormi pn cnd fiul se termin;
apelul wait returneaz PID-ul fiului
i codul de terminare.
Variantele de wait permit ateptarea
unui anumit fiu sau notificarea
stoprii fiului sau a altor semnale.
!iul "ntoarce printelui codul
de terminare la exit pentru a
raporta succesul#eecul.
13/30
&rocese concurente /3

<isciplina fiului
<up" un apel for(',) pro-ramul p"rinte are
controlul total asupra comportamentului fiului s"u
5iul %4i mo4tene4te mediul de e.ecu/ie de la p"rinte
'dar pro-ramul p"rinte %l poate schim+a,

asi-n"rile descriptorilor de fi4iere sunt setate cu open',)


close',) dup',

pipe', ini/iali2ea2" canalele de comunica/ie %ntre procese


&ro-ramul p"rinte poate pune fiul s" e.ecute un
pro-ram diferit) apel;nd e.ec', %n conte.tul fiului
17/30
&rocese concurente /3

&rocesul fiu tre+uie s" poat" fi diferit de p"rinte


&rimitivele e.ec', @+ootea2"A fiul cu o ima-ine
e.ecuta+il" diferit" de cea a p"rintelui

pro-ramul p"rinte apelea2" primitiva e.ec', '%n conte.tul


fiului creat, pentru a e.ecuta %n acesta un nou pro-ram

e.ec', reacoper" procesul fiu cu o nou" ima-ine e.ecuta+il"

restartea2" fiul %n mod utili2ator la un punct de intrare


predeterminat

nu returnea2" nici o valoare pro-ramului apelant 'acesta nu


mai e.ist",

ar-umentele liniei de comand" 4i varia+ilele de mediu sunt


transferate %n memorie

descriptorii de fi4iere) &I<0ul) R.a. r"m;n neschim+ate


19/30
&rocese concurente /7
>.emplu
1?/30
&rocese concurente /9

Lai multe ca2uri tre+uie considerate pentru @*oinA


e.-. e.it', 4i wait',
!e se %nt;mpl" dac" fiul face e.it 'se termin",
%nainte ca tat"l s" fac" *oinD
E 1n o+iect proces @2om+ieA p"strea2" codul de terminare 4i
informa/iile de stare ale fiului
!e se %nt;mpl" dac" tat"l se termin" %naintea fiuluiD
E Orfanii devin copii ai procesului init 'cu &I<0ul 1,
!e se %nt;mpl" dac" tat"l nu04i poate permite s"
a4tepte la un punct de *oinD
E 5acilit"/i pentru notific"ri asincrone 'prin semnale 1ni.,
1B/30
&lanificarea proceselor

&lanificarea proceselor 'va fi continuat",

O+iective

!o2i de planificare

&lanificatoare

Structura planific"rii

Schim+area conte.tului

&riorit"/i

Gl-oritmi de planificare
1C/30
&lanificarea proceselor /1

O+iectivele -estiunii procesorului


de a aloca timp !&1 la *o+urile/procesele
de e.ecutat) %ntr0o asemenea manier" %nc;t
s" optimi2e2e un anumit aspect 'sau mai
multe aspecte, ale performan/ei utili2"rii
sistemului de calcul
0/30
&lanificarea proceselor /

Echitate
Gsi-urarea faptului c" fiecare
proces are 4anse echita+ile la !&1

Timp de rspuns
Linimi2area timpului de r"spuns
pentru utili2atorii interactivi

Predictibilitate
Gsi-urarea faptului c" un acela4i
*o+ va avea o aceea4i durat" de
e.ecu/ie indiferent de varia+ilele
sistemului

Eficiena
5urni2area unui -rad ridicat de
utili2are a !&1

tili!area resurselor
Gsi-urarea faptului c" toate
resursele sunt folosite la ma.im

Throughput 'rata de servire,


La.imi2area num"rului de *o+uri
e.ecutate pe or"

E"itarea am#nrii la infinit


Gsi-urarea faptului c" toate
*o+urile se termin" de e.ecutat

$eadlines 'termene limit",


Gsi-urarea %ndeplinirii termenelor
limit" specificate de utili2atori
$%iective urmrite:
1/30
!o2i de planificare /1

!o2i de planificare
pe m"sur" ce procesele %ntr" %n sistem) sunt
depuse %ntr0o coad de %oburi 'cu toate procesele
ce a4teapt" s" li se aloce memoria principal",
procesele ce sunt re2idente %n memoria principal"
4i care sunt -ata de e.ecu/ie 4i a4teapt" s" fie
e.ecutate) sunt p"strate %n coada ready '-ata de
e.ecu/ie,
procesele ce a4teapt" un dispo2itiv periferic I/O
sunt p"strate %ntr0o coad &'( 'coada periferic,
/30
!o2i de planificare /

1n nou proces este pus ini/ial %n coada read8

>l a4teapt" %n coada read8 p;n" c;nd este selectat


pentru e.ecu/ie 4i i se d" !&10ul

<up" ce !&10ul %i este alocat procesului 4i %ncepe


s"0l e.ecute) pot apare mai multe evenimente:
procesul poate lansa o cerere I/O 4i apoi este plasat
%ntr0o coad" I/O
procesul poate for(', un nou proces 4i wait', terminarea
fiului
procesul poate fi %nl"turat for/at de pe !&1 'ca urmare
a unei %ntreruperi, 4i plasat %napoi %n coada read8
3/30
!o2i de planificare /3
fiul se
e.ecut"
!oada read8
for(', un fiu
!oada I/O I/O
!uant" de timp e.pirat"
wait for an
interrupt
!erere I/O
fiul se
termin"
!&1
%ntreruperea
apare
3/30
&lanificatoare /1
Gctivitatea S.O.0ului de planificare poate fi
considerat" c" se desf"4oar" la trei nivele:
)* +a ni"elul ,nalt -planificarea %oburilor. se
decide care *o+uri pot intra %n sistem pentru a
concura pentru resursele acestuia
/* +a ni"elul de mi%loc -planificarea proceselor.
se a*ustea2" priorit"/ile proceselor 4i se pot
suspenda procese) determin;nd astfel care
procese vor concura pentru !&1
0* +a ni"elul sca!ut -dispecerat. se decide c"rui
thread i se va da efectiv !&10ul
7/30
&lanificatoare /
Planificatoare1
)* Planificator pe termen lung -planificator de %oburi.

selectea2" procesele 4i le %ncarc" %n memorie pentru e.ecu/ie

controlea2" gradul de multi-programare 'i.e.) num"rul de


procese din memorie,
/* Planificator pe termen scurt -planificator CP.

selectea2" dintre procesele care sunt %n starea read8 '-ata de


e.ecu/ie, unul c"ruia %i aloc" !&10ul pentru urm"toarea
cuant" de timp procesor

tre+uie s" fie foarte rapid) deoarece va fi e.ecutat cel pu/in o


dat" la ~ 10 ms
9/30
&lanificatoare /3
Fipuri de procese:

&rocese I/O0intensive
un proces care -enerea2" des cereri I/O) i.e. care04i petrece
mai mult timp f"c;nd opera/ii I/O dec;t efectu;nd calcule

&rocese !&10intensive
un proces care -enerea2" rar cereri I/O) petrec;ndu04i
timpul mai mult f"c;nd calcule dec;t opera/ii I/O
?/30
&lanificatoare /3

Orice al-oritm de planificare tre+uie s" ia %n calcul


urm"torii factori:
i, dac" un tas( este I/O0intensiv sau !&10intensiv)
ii, dac" un tas( este de tip +atch sau interactiv) 4i
iii, c;t de ur-ent se cere a fi r"spunsul.

Sistemul cu cea mai +un" performan/" va avea o


com+ina/ie de procese !&10intensive 4i I/O0intensive.

&entru sistemele moderne) planificatorul pe termen


lun- poate fi minimal sau chiar a+sent.
B/30
&lanificatoare /7

1nele S.O.0uri 'e.-. sisteme cu time0sharin-, pot


introduce un nivel intermediar de planificare:
planificatorul pe termen mediu
!oada read8 !&1
!o2i de a4teptare I/O I/O
&rocese par/ial e.ecutate swapped0out
end
swap out
swap in
Schema de swappin-
C/30
:i+lio-rafie

Bibliografie obligatorie
capitolele despre gestiunea proceselor din
Sil+erschat2 : @$perating &'stem (onceptsA
'cap.3)7 din SOS!>BT,
sau
Fanen+aum : @)odern $perating &'stemsA
'prima parte a cap. din SLOS3T,
30/30
Sumar

!onceptul de proces

St"rile procesului

#ela/ii %ntre procese

&rocese concurente

&lanificarea proceselor

O+iective

!o2i de planificare

&lanificatoare
va fi continuat"
6ntre+"ri D

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

  • Poo STL2
    Poo STL2
    Document47 pagini
    Poo STL2
    Mădălina Luceac
    Încă nu există evaluări
  • Pa 11apr2014 A Cu Solutii
    Pa 11apr2014 A Cu Solutii
    Document4 pagini
    Pa 11apr2014 A Cu Solutii
    Mădălina Luceac
    Încă nu există evaluări
  • T9 Memoryadmin2
    T9 Memoryadmin2
    Document43 pagini
    T9 Memoryadmin2
    Maria Maftei
    Încă nu există evaluări
  • T3 Processadmin1
    T3 Processadmin1
    Document30 pagini
    T3 Processadmin1
    Mădălina Luceac
    Încă nu există evaluări
  • De la Everand
    Încă nu există evaluări
  • De la Everand
    Încă nu există evaluări