Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica
Sincronizare cu monitoare

Sincronizare cu monitoare




Sincronizare cu monitoare

Un monitor este o colectie de structuri de date, variabile si proceduri, grupate impreuna intr-un modul sau pachet. Procesele pot apela procedurile dintr-un monitor ori de cate ori au nevoie, dar nu pot accesa direct structurile de date interne monitorului prin proceduri declarate in afara acestuia ( conceptul de incapsulare).

Monitoarele au o proprietate importanta care le fac utile pentru implementarea excluderii mutuale : in fiecare moment, un singur proces poate fi activ intr-un monitor.

Monitoarele sunt constructii de limbaj, deci compilatorul stie ca sunt speciale, tratand apelurile procedurilor monitorului diferit de apelurile obisnuite de proceduri. Astfel, cand un proces apeleaza o procedura a unui monitor, primele cateva instructiuni verifica daca mai este un alt proces activ in interiorul monitorului. Daca da, procesul curent este suspendat pana se elibereaza monitorul. Daca nu, procesul poate "intra" in monitor. Astfel, scriind (implementand) sectiunile critice in interiorul monitorului, suntem siguri ca nu vor fi doua procese care executa in acelasi timp sectiunile lor critice.

Excluderea mutuala nu este suficienta. Avem nevoie de un mecanism pentru blocarea proceselor atunci cand nu mai pot continua (asteapta eliberarea monitorului). Acest lucru se realizeaza prin introducerea variabilelor de conditie impreuna cu doua operatii ce se pot executa asupra lor : WAIT si SIGNAL. Cand procedura monitorului descopera ca nu mai poate continua, executa(??) un WAIT pe variabila de conditie. Aceasta determina blocarea procesului pana cand un alt proces executa SIGNAL pe aceeasi variabila de conditie. Dupa executarea lui SIGNAL, procesul trebuie sa iese imediat din monitor (deci SIGNAL trebuie sa apara la sfarsitul procedurii monitorului). Daca SIGNAL este executat pe o variabila de conditie pe care sunt blocate mai multe procese, planificatorul va alege doar unul din acestea pentru a-i continua executia.

Exemplu : Problema producatorului si consumatorului.

Se considera un tablou de N elemente si 2 procese: un proces producator care produce un element si incearca sa-l introduca in tablou si un proces consumator care incearca sa extraga un element din tablou cu scopul de a-l consuma. Procesul producator nu poate introduce elemente intr-un tablou plin, iar procesul consumator nu poate extrage elemente dintr-un tablou gol.

Implementarea cu monitoare :

monitor ProducerConsumer

condition full, empty;

integer count;

procedure enter;

begin

if count=N then wait(full);



enter_item;

count:=count+1;

if count=1 then signal(empty);

end;

procedure remover;

begin

if count=0 then wait(empty);

remove_item;

count:=count-1;

if count=N-1 then signal(full);

end;

count=0;

end monitor;

procedure producer;

begin

while true do begin

produce_item;

ProducerConsumer.enter;

end

end;

procedure consumer;

begin

while true do begin

ProducerConsumer.remove;

consume_item;

end

end;

Variabilele de conditii nu cunt contoare. Ele nu acumuleaza semnalele sosite (cum fac semafoarele). Astfel, daca se executa un SIGNAL pe o conditie pe care nimeni nu asteapta (n-a executat WAIT), semnalul este pierdut.







Politica de confidentialitate







creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.
});


Comentarii literare

ALEXANDRU LAPUSNEANUL COMENTARIUL NUVELEI
Amintiri din copilarie de Ion Creanga comentariu
Baltagul - Mihail Sadoveanu - comentariu
BASMUL POPULAR PRASLEA CEL VOINIC SI MERELE DE AUR - comentariu

Personaje din literatura

Baltagul – caracterizarea personajelor
Caracterizare Alexandru Lapusneanul
Caracterizarea lui Gavilescu
Caracterizarea personajelor negative din basmul

Tehnica si mecanica

Cuplaje - definitii. notatii. exemple. repere istorice.
Actionare macara
Reprezentarea si cotarea filetelor

Economie

Criza financiara forteaza grupurile din industria siderurgica sa-si reduca productia si sa amane investitii
Metode de evaluare bazate pe venituri (metode de evaluare financiare)
Indicatori Macroeconomici

Geografie

Turismul pe terra
Vulcanii Și mediul
Padurile pe terra si industrializarea lemnului



Principiile marketingului electronic
Probleme de optim in retele de transport si distributie
Sistem informatic privind acordarea de credite persoanelor fizice
Informatica - ce este informatica?
Notiunea de sistem, sistem cibernetic
Sinteza unui dispozitiv secvential de inmultire a numerelor binare reprezentate in semn-marime
Sumatoare paralele pe principiul propagarii seriale a transportului
E-marketingul si cei patru P



Termeni si conditii
Contact
Creeaza si tu