Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...
Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...
Studio e Realizzazione di Architetture Concorrenti per Sistemi ad ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Architetture</strong> <strong>Concorrenti</strong> in prodotti a larga <strong>di</strong>ffusione - DCOM 21<br />
?? Se due oggetti risiedono nello stesso Apartment, ed uno <strong>di</strong> essi sta processando<br />
una chiamata, nessun'altra invocazione può essere accettata dall'Apartment,<br />
anche se <strong>di</strong>retta al secondo componente [Diagramma 9].<br />
Diagramma 9 : Concorrenza tra invocazioni <strong>di</strong> oggetti in Apartment <strong>di</strong>fferenti<br />
2.2.3.2 MultiThre<strong>ad</strong>ed Apartment<br />
Un MTA è un modello libero <strong>di</strong> concorrenza: un oggetto non risiede in nessun thre<strong>ad</strong><br />
specifico, ed ogni oggetto all'interno dell'Apartment (unico <strong>per</strong> ogni singolo processo)<br />
può essere invocato <strong>di</strong>rettamente (senza bisogno <strong>di</strong> marshaling) da qualsiasi altro<br />
componente, anche se residente in altri thre<strong>ad</strong>.<br />
Naturalmente questo elimina gli overhe<strong>ad</strong>, ma demanda completamente al<br />
programmatore il controllo delle necessarie sincronizzazioni (tramite eventi, semafori<br />
o quant'altro).<br />
La maggiore libertà nella sincronizzazione consente, <strong>per</strong>ò, <strong>di</strong> poter <strong>ad</strong>attare al meglio<br />
la gestione delle "sezioni critiche", così da ottenere un "fine tuning" dell'applicazione<br />
(utilizzando costrutti quali i lock manuali).