Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
• Memoria non con<strong>di</strong>visa (tecniche <strong>di</strong> message-pass<strong>in</strong>g).<br />
Carnielli Efrem: Programmazione a componenti<br />
Programmazione a componenti<br />
Dal nostro punto <strong>di</strong> vista hanno più rilievo le tecniche <strong>di</strong> message pass<strong>in</strong>g.<br />
L’architettura client/server si basa su message pass<strong>in</strong>g s<strong>in</strong>crono a capacità nulla.<br />
Spieghiamo meglio con riferimento alla figura 1.12<br />
In<br />
esecuzione<br />
In attesa<br />
In<br />
esecuzione<br />
Client<br />
Richiesta<br />
Risposta<br />
Figura 1.12.. Message pass<strong>in</strong>g s<strong>in</strong>crono nel client server<br />
Server<br />
In attesa o<br />
altre attività<br />
Sod<strong>di</strong>sfare<br />
richiesta<br />
In attesa o<br />
altre attività<br />
Tempo<br />
Il s<strong>in</strong>cronismo tra i due processi è garantito utilizzando un canale <strong>di</strong> capacità zero: il<br />
client una volta <strong>in</strong>viata la richiesta deve aspettare che il server sia pronto per<br />
ricevere, qu<strong>in</strong><strong>di</strong> ad ogni <strong>in</strong>vio <strong>di</strong> richiesta deve avvenire una s<strong>in</strong>cronizzazione tra<br />
client e server.<br />
Oltre a quello a capacità nulla appena visto, esistono message pass<strong>in</strong>g a capacità<br />
limitata e illimitata (non <strong>in</strong>f<strong>in</strong>ita!).Dipende tutto dal buffer <strong>di</strong> ricezione.<br />
Se un buffer è limitato a n allora si possono <strong>in</strong>viare n richieste prima <strong>di</strong> saturare il<br />
canale e poi si rimane <strong>in</strong> attesa che il server com<strong>in</strong>ci a sod<strong>di</strong>sfarle; solo a quel punto<br />
si ha s<strong>in</strong>cronizzazione.<br />
Facciamo un esempio <strong>di</strong> comunicazione con buffer a capacità non nulla:<br />
pren<strong>di</strong>amo il Mc Donald, <strong>in</strong> cui il cuoco è il client, lo scivolo dei pan<strong>in</strong>i il buffer e, il<br />
ragazzo che prende le ord<strong>in</strong>azioni, il server.<br />
Il cuoco prepara e confeziona i pan<strong>in</strong>i (le richieste) e li <strong>in</strong>via sullo scivolo verso il<br />
cameriere, il cuoco <strong>in</strong>serisce pan<strong>in</strong>i senza <strong>in</strong>teresse <strong>di</strong> quello che sta facendo il<br />
cameriere, non c’è s<strong>in</strong>cronia, e si ferma solo se lo scivolo è pieno. Il cameriere<br />
<strong>di</strong>versamente è sempre <strong>in</strong> attesa <strong>di</strong> ricevere pan<strong>in</strong>i sullo scivolo, da uno o più<br />
20