Metodele de excludere reciproca sunt cu si fara asteptare activa. Printre metodele cu asteptare activa am prezentat :
-metoda HW cu inhibarea IT - libertati periculoase utilizatorilor;
-variabila poarta - nu rezolva excluderea reciproca;
-variabila comutator - impune alternanta;
-variabila locala (int/ext) - bug la acces simultan;
-variabila locala cu testarea modificarii - bug la sincronism;
-metoda Dekker - variabila locala + comutator;
-metoda Peterson - proceduri enter/leave;
-metoda Kunth - cu lista inlantuita;
-metoda TSL test si set lock ( R or W legat )
Metodele fara asteptare activa prezentate sunt :
-blocare proces in trezire
SLEEP - WAKEUP
bug : un proces merge la culcare cand celalalt vrea sa-l trezeasca, deci se pierde trezirea
-semafoare
UP - DOWN
se memoreaza semnale de trezire
-in SO pot avea intreruperi
DOWN neintreruptibila - sleep
UP - wake up
-la orice proces exista doua conditii -mutex
-conditie
-monitoare
WAIT - SIGNAL
-incapsularea procedurilor de excludere;
-inchise intr-un modul special - MONITOR;
-garanteaza la intrare excluderea reciproca;
-primul rand testeaza daca sunt alte proceduri active ;
- daca exista se autosuspenda la trezire, trebuie ca procesul ce executa trezirea sa paraseasca arena, pentru a nu fi doua procese active simultan
In primul rand testeaza daca sunt conditii de trezire si lanseaza SIGNAL.
Utilizatorul scrie:
proc producator
while (true) do
produce_produs;
ProdCon.enter;
end while
Consumatorul scrie:
proc consumator
while (true) do
ProdCon.remove;
consuma_produs;
end while;
monitor Monitor ProdCom
proc enter
if nr=N then WAIT (full)
intra_produs;
incr nr;
if nr=1 then SIGNAL (empty)
end proc
proc remove
if nr=0 then WAIT (empty);
scade_produs;
decr nr;
if nr=N-1 then SIGNAL (full);
end proc;
end monitor;
Message passing (continuare)
Metoda pentru sisteme distribuite dispuse in retele
-apeluri OS: SEND / RECEIVE (adresa, &message)
-adresa este a sursei sau a destinatiei
-RECEIVE se blocheaza pana la receptia mesajului
Structura care realizeaza message passing sub forma dialogului client-server. Clientul asteapta servicii de la server. Dialogul se realizeaza prin chemarea unei proceduri cu parametrii si blocarea pana la obtinerea rezultatului. Este vorba despre remote procedure call. Procedurile stub
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.