Sistemi distribuiti e architetture

Sistemi distribuiti e architetture

Sistemi distribuiti e architetture

Cosa è un sistema distribuito?

Sono dei sistemi per i quali l’elaborazione è distribuita. Non è detto che essa debba essere distribuita fisicamente, ma la cosa fondamentale è che i componenti di elaborazione siano distribuiti e quindi non uniti in un unico blocco.

Che vantaggi offre?

  • Condivisione delle risorse, che comporta maggiore efficienza, riduzione dei costi, riduzione di ridondanza, distribuzione del carico.
  • Scalabilità, ossia possibilità di variare struttura del sistema senza stravolgere ciò che si ha già ed è vantaggioso dal punto di vista di manutenibilità.
  • Fault tolerance, collegato all’affidabilità, perchè viene garantito che, nel caso in cui un componente venga meno, gli altri riescano comunque a lavorare.

Per quanto riguarda gli svantaggi abbiamo:

  • Maggiore complessità sia a livello di struttura sia a livello di gestione;
  • Poca protezione, poiché è un sistema aperto e bisogna lavorare per capire e progettare la sicurezza, la protezione, la riservatezza dei dati e dell’applicazione stessa;
  • Non prevedibile, perché ho tante entità che interagiscono quindi è più facile che si inneschi un meccanismo non previsto dal sistema.

Architetture dei sistemi distribuiti

Passiamo adesso all’analisi delle ARCHITETTURE MULTI-PROCESSORE.

Un’ architettura multiprocessore è fondamentalmente una struttura hardware. Questo implica che, a differenza del modello classico, ossia a processore singolo, si hanno più processori e la possibilità di eseguire più processi sui singoli processori.

L’utilizzo di tali architetture è molto comune nei sistemi REAL TIME, ossia quei sistemi in cui l’aspetto temporale è determinante, sistemi critici dal punto di vista del tempo. In un architettura multi processore i processi possono essere eseguiti su unico processore, ma ovviamente è necessario l’uso di uno scheduler, un particolare processo che pianifica l’esecuzione dei diversi processi su un processore in base ad algoritmi classici. Se si utilizzano processori multipli ovviamente l’efficienza migliora ma aumenta anche la complessità e si utilizza un dispatcher, un processo che effettua il controllo del traffico e delle allocazioni tra processi e processori.

Che differenza c’è tra scheduler e dispatcher?

Lo scheduler è la componente del SO che si occupa di allocare il processo al processore, dare l’ordine. Mentre il dispatcher si occupa solo di controllare il traffico, di gestire le diverse allocazioni tra processo e processori distinti. Se abbiamo un sistema formato da processi multipli non è detto che sia un sistema distribuito, come ad esempio i sistemi operativi.

Nei sistemi distribuiti abbiamo componenti distribuite che interagiscono sfruttando le risorse della rete. Le architetture multiprocessore sono una prima categoria dei sistemi distribuiti.

Esamineremo nei prossimi articoli in maniera panoramica questi 4 tipi di architetture:

  1. Client-Server;
  2. A oggetti distribuiti;
  3. Peer-to-peer;
  4. A sistemi distribuiti.

Bisogna notare che il secondo tipo di architettura distribuita, ossia il Client-Server, è più semplice da comprendere sia per la modellazione sia per il funzionamento.

Inoltre, in tutti e quattro questi modelli è fondamentale il ruolo del MIDDLEWARE, che è una componente software finalizzata a gestire la comunicazione delle diverse componenti del sistema stesso. Le componenti infatti, possono essere scritte con linguaggi diversi, o possono funzionare su piattaforme diverse, perciò tutte queste incompatibilità vengono gestite dal middleware. E’ standardizzato e quindi a seconda della tecnologia scelta si sceglierà un middleware piuttosto che un altro.

Precedente Linguaggio UML e diagramma di configurazione Successivo Sistemi distribuiti e architettura Client-Server

Lascia un commento

*