Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Comunicarea intre procese - semafoare binare - mutex, monitoare

hardware



+ Font mai mare | - Font mai mic



Comunicarea intre procese - semafoare binare - mutex, monitoare.

Semafoare binare - mutex



mutex - versiune simplificata de semafor, variabila care se poate afla in doua stari posibile: inchis sau deschis.

Se mai numesc semafoare binare.

Semafoarele mutex sunt folosite pentru a rezolva excluderea mutuala asupra unei resurse partajate sau a unei secvenTe de cod. Adica se asigura accesul unui singur proces in regiunea lui critica la un moment dat.

Sunt utile in pachetele de fire de execuTie implementate in spaTiu utilizator.

Este suficient un bit pentru memorarea lor, dar adesea se foloseste un nr. intreg.

Se folosesc doua proceduri:

mutex_lock: cand un fir de execuTie (proces) trebuie sa intre in regiunea critica se apeleaza mutex_lock.

. Daca mutex-ul este deschis, firul de execuTie apelant intra in regiunea critica.

. Daca mutex-ul este inchis, firul de execuTie apelant este suspendat pana ce firul de execuTie aflat in regiunea critica a iesit si a apelat mutex_unlock.

mutex_unlock.

Monitoare

Primitive de sincronizare la nivel inalt propuse de Hoare (1974) si Hansen (1975)

Colectie de proceduri, variabile si structuri de date care sunt grupate intr-un modul special

Procesele pot apela procedurile din monitor oricand, dar nu pot accesa direct structurile de date interne monitorului prin proceduri din afara monitorului

Doar un singur proces poate fi activ intr-un monitor la un moment dat. In momentul in care un proces apeleaza o procedura dintr-un monitor, primele instrucTiuni ale procedurii verifica daca exista un alt proces activ in monitor. Daca da, procesul curent este suspendat.

Prin transformarea tuturor regiunilor critice in proceduri de monitor, nu vor exista procese care sa-si execute regiunile critice in acelasi timp.

Implementarea excluderii mutuale la intrarea intr-un monitor se afla la latitudinea compilatorului si in mod obisnuit se realizeaza printr-un mutex sau semafor binar

Cum sunt programate blocajele atunci cand un proces nu poate continua?

Se folosesc variabilele de condiTie impreuna cu doua operaTii: wait si signal

Cand o procedura din monitor observa ca nu mai poate continua (de ex. producatorul observa ca zona full este plina), se efectueaza o operaTie wait asupra unei variabile de condiTie (de ex. full). Astfel se blocheaza procesul apelant si i se permite unui alt proces sa intre in monitor.

Procesul nou intrat (de ex. consumatorul) isi poate trezi partenerul care "doarme" printr-o operaTie signal asupra variabilei la care asteapta partenerul

Trebuie stabilita o regula pentru efectul operaTiei signal pentru a evita situaTia in care doua procese ruleaza in monitor (de ex. signal sa fie ultima

operaTie care se face in monitor)

Variabilele de condiTie nu sunt contoare, ele nu acumuleaza semnalizari pentru utilizari viitoare asa cum fac semafoarele.

OperaTia wait trebuie sa ajunga inaintea operaTiei signal.

OperaTiile wait si signal sunt asemanatoare operaTiilor sleep si wakeup dar cu o diferenTa importanta: sleep si wakeup nu funcTionau pentru ca in timp ce un proces incerca sa se blocheze, celalat incerca sa se trezeasca.

Excluderea mutuala automata asupra procedurilor monitorului asigura faptul ca asa ceva nu se intampla

Monitoarele nu pot fi scrise in orice limbaj de programare. Compilatorul trebuie sa recunoasca si sa asigure excluderea mutuala.

C si Pascal nu au monitoare. Java are.

1. Excluderea mutuala

Dezactivarea intreruperilor

Variabila incuietoare (lock)

Alternarea stricta

InstrucTiunea TSL

2. Folosirea apelurilor de sistem sleep si wakeup

3. Semafoare

4. Mutex

5. Monitoare

6. Transferul de mesaje

7. Bariere

AplicaTii: problema producator - consumator



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2068
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved