Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica
Procese secventiale comunicante. Rendez-vous simetric.

Procese secventiale comunicante. Rendez-vous simetric.


Procese secventiale comunicante. Rendez-vous simetric.

Metoda proceselor secventiale a fost propusa de Hoare, sub forma chiar a unui limbaj. Unul din conceptele de baza al acestor procese secventiale comunicante il reprezinta comenzile cu garda.

Aceste comenzi sunt folosite pentru a exprima comportamentul nedeterministic al proceselor ca reactie, de exemplu, la evenimentele externe ce apar intr-o ordine oarecare, ceea ce este foarte frecvent in practica sistemelor in timp real.

*[garda_1 -> comanda_1

garda_2 -> comanda_2

garda_3 -> comanda_3

.

.

]


O comanda cu garda este formata dintr-o garda (expresie booleana), urmata de o lista de instructiuni ce se poate executa numai daca garda este adevarata. Constructii alternative sau repetitive se pot exprima cu ajutorul unor seturi de comenzi cu garda, astfel:

[garda_1 -> comanda_1

garda_2 -> comanda_2

garda_3 -> comanda_3

.

.

]

unde caracterul special este folosit pentru separarea comenzilor cu garda, caracterul * indica repetitie, garda_n reprezinta o expresie booleana, iar comanda_n este lista de instructiuni asociata comenzii cu garda. De exemplu :



[ x>=y -> max:=x

y>=x -> max y

]

Daca ambele garzi sunt valabile, se vor executa ambele instructiuni. Daca nici una dintre garzi nu este adevarata, programul va fi abortat.

Intr-o constructie repetitiva, lista se executa pana cand garda devine neadevarata.

Daca un proces A emitator doreste sa transmita date unui alt proces B receptor, atunci cele doua procese trebuie sa-si indice reciproc aceasta dorinta de a comunica prin executarea unei comenzi de emisie si respectiv de receptie. Daca se intampla ca procesul A sa intalneasca primul, in timpul executiei, o comanda de emitere mesaj, atunci el va fi suspendat pana cand procesul B va intalni, in timpul executiei, o comanda de receptie mesaj. In mod similar si simetric, daca procesul B va intalni primul o comanda de receptie de mesaj, el va fi suspendat pana ce procesul A va intalni o comanda de emitere mesaj. In momentul cand ambele procese s-au sincronizat, datele (mesajul) sunt transferate imediat dupa care fiecare proces isi va relua executia pe cont propriu, in paralel.

Aceasta metoda de sincronizare poarta denumirea de rendez-vous.

Modelul de rendez-vous propus de Hoare este simetric, in sensul ca ambele procese ce comunica intre ele sunt tratate in mod egal.

task B;

var y:date;

begin

A ? y;

end;

In exemplul care urmeaza, procesul A emitator doreste sa transfere datele x procesului B :

task A;

var x:date;

begin

B ! x;

end;

Comanda "B!x" din procesul A specifica dorinta de transmitere a datelor x (valorilor lui x) catre procesul B, iar comanda corespunzatoare "A?y" din procesul B specifica acceptul de a receptiona datele si a le asocia ca valori ale lui y.

Pentru a realiza acest transfer de date, cele doua procese se asteapta unul pe altul pana ce ambele ajung in sincronism (in dreptul comenzilor de rendez-vous), moment in care are loc transmiterea datelor intre procese, dupa care fiecare proces isi va continua executia in paralel, in mod independent.

Aceasta varianta de rendez-vous propusa de Hoare este simetrica, in sensul ca ambele procese care se sincronizeaza contin explicit numele celuilalt proces, ceea ce din punct de vedere practic reprezinta o dificultate majora, deoarece multe programe - cum sunt, de ex., componentele unei biblioteci de programe - nu pot cunoaste dinainte numele programelor apelante. O solutionare a acestei probleme este prezentata in subcapitolul urmator.





Politica de confidentialitate


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