partea ii sisteme de operare
DESCRIPTION
Ştefan Stăncescu. PARTEA II SISTEME DE OPERARE. CURSUL 7 COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA. COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA. SISTEM DE CALCUL = resurse PROCESELE = consumatori MULTIPROCESAREA = mai multe procese - PowerPoint PPT PresentationTRANSCRIPT
PARTEA II SISTEME DE OPERARE
CURSUL 7
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
Ştefan Stăncescu
1
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
2
SISTEM DE CALCUL = resurse
PROCESELE = consumatori
MULTIPROCESAREA =
mai multe procese
pe aceleasi resurse de calcul
MULTIPROGRAMAREA =
comunicatia intre procese ruland simultan
aparent independente
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
3
MULTIPROGRAMAREA =
comunicatia intre procese independente
dar concurand pe aceleasi resurse
procesele se pot influenta reciproc
NECESARE MECANISME
DE COMUNICARE INTRE PROCESE
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
4
RULAREA DETERMINATA =
obtinerea acelorasi rezultate
independent deconditiile rularii
(pentru aceleasi date de intrare)
ORICE RELUARE A RULARII=
ACELEASI REZULTATE
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
5
IN MULTIPROGRAMARE
orice fac celelalte progame,
programul curent ruleaza identic
FOLOSIREA RESURSELOR COMUNE
perturba rularea proprie
resursele pot pastra memoria
din alte procese
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
6
PREVENIREA INTERFERENTEI
prin mecanisme de comunicare
intre procese
care folosesc resurse comune
MECANISME DE
EXCLUDERE MUTUALA
(dialog civilizat intre procese pentru coordonarea folosirii resurselor comune)
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
7
Printer spooler (PRIM = 1)
A:
FINE=3 FINE=4
B:
FINE=3 FINE=4
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
8
ZONA CRITICA
zona de program
care exploateaza o sursa comuna
Inainte de a ajunge in zona critica
programele trebuie sa comunice intre ele pentru a-si coordona
folosirea resursei comune
DIN PROPRIA ZONA CRITICA
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
9
REGULI DE ACCES IN ZONA CRITICA1. Să nu existe 2 procese simultan în propriile secţiuni critice.
2. Procesele să fie determinate, adică să producă rezultate identice, indiferent de împrejurările de rulare, referitoare la caracteristici hardware sau număr şi caracteristici de procese concurente.
3. Nici un proces care rulează în afara secţiunii critice să nu blocheze alte procese de a folosi zona critică.
4. Nici un proces să nu aştepte arbitrar de mult până la
intrarea în secţiunea critică proprie.
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCA
10
REGULA CEA MAI SIMPLA (?)
Desfiintarea mecanismului de intrerupere (H/W)
Procesul curent impiedica intreruperea sa
de catre alte procese
inainte de a intra in ZC => blocare IT
dupa folosirea ZC => deblocare IT
Dezavantaj – nedeblocarea la iesire din ZC!
nu respecta regulile 3 si 4
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
11
VARIABILE DE ÎNCHIDERE-POARTĂ
PROCES A PROCES B
EROARE:
B intrerupe A inainte ca A sa faca LOCK=1 => Regula 1 cade
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
12
ALTERNARE FORŢATĂ CU VARIABILĂ COMUTATOR COMUNĂ
PROCES A PROCES B
EROARE:
A pune comutator=2 si sta mult in ZNC
B trece rapid ZC si vrea iar ZC => Regula 3 cade
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
13
ALTERNARE CU VARIABILĂ LOCALĂ VIZIBILĂ
PROCES A PROCES B
EROARE:
A si B trec simultan task_1=INT si task_2=INT
A si B blocate reciproc => Regula 4 cade
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
14
ALTERNARE CU VARIABILĂ LOCALĂ VIZIBILĂ
PROCES A PROCES B(12)
EROARE:
A si B sincrone
A si B blocate reciproc => Regula 4 cade
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
15
METODA DEKKER
PROCES A
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
16
METODA PETERSON
Enter_region:{/*2 constante cu ordinea proceselor
alt_proces=not ast_proces;
vreau(ast_proces)="1";
/* procesul curent doreste să intre în zona critică */
activ=ast_proces;
/* sunt pe cale să intru şi altul vrea să intre */
while((activ==ast_proces) && (vreau(alt_proces)==1))
{} /* ZC
}
Leave_region: { vreau[ast_proces]=0; } /* indică ieşirea din zona critică */
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU TESTARE - POLLING
17
METODA H/W CU TEST & SET LOCK - TSL
enter_region:
CHECK: MOV AL,1 ; prevede interzicerea altor procese
LOCK: XCHG FLAG,AL ; TSL pentru XCHG
TEST AL,AL ; examinează starea „0” a variabile FLAG
JNZ CHECK ; aşteaptă dacă alt procesor deţine resurs
zonă critică, în care se exploatează o resursă comună protejată de variabila FLAG
leave_region:
MOV FLAG,#0 ; iniţializează FLAG
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
18
EXCLUDEREA PRIN SLEEP-WAKEUP
SLEEP - blocheaza proces curent
WAKEUP(p) - trezeste proces p
EXE BENEFEXE produce 1 produs <-----
SLEEP <--------(DA) Magazia plina? | -> Magazia goala? (DA) -----------------> SLEEP
1 produs => magazie | | 1 produs <= magazie
Actualizare stare magazie | | Actualizare stare magazie
WAKEUP(BENEF)I-a intrare in magazia goala? | | I-a iesire din magazia plina?-WAKEUP(EXE)
NU? -----------------> |NU?
<--- BENEF consuma 1 produs
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
19
EXCLUDEREA RECIPROCA PRIN SEMAFOARE
Semafor: variabila care numără trezirile
pentru a ţine cont de ele apoi (le memoreaza).
de fapt, un contor.
Asupra unui semafor acţionează două funcţii :
DOWN(s) : testează semaforul s :
- dacă s>0 decrementează semaforul s şi continuă procesul
- dacă s=0 blochează procesul curent
UP(s) : incrementează semaforul s.
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
20
EXCLUDEREA RECIPROCA PRIN SEMAFOARE
Exemplu : o magazie cu un producător şi un beneficiar.
Vom folosi 3 semafoare:
full : număr de locuri ocupate în magazie. Initial full=0 ;magazia goală
empty : număr de locuri libere în magazie. Initial empty=n ;capacitatea magaziei
mutex : asigura accesul exclusiv la magazie. Initial mutex=1 ;permite accesul în zona critică
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
21
EXCLUDEREA RECIPROCA PRIN MONITOARE
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
22
EXCLUDEREA RECIPROCA EXEMPLU
COMUNICATIA INTRE PROCESE SI EXCLUDEREA RECIPROCAMECANISME CU BLOCARE
23
EXCLUDEREA RECIPROCA PRIN EXEMPLE
Dining philosophers (Dijkstra):
https://www.eecis.udel.edu/~bmiller/cis361/2011f/slides/Classics