28.05.2013 Views

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 ...

SHOW MORE
SHOW LESS

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).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!