Reti di Calcolatori INFOS COMMS .. - 2003-20042003-2004 Reti di Calcolatori 1 Il modello I Sistemi di Client/Server Rete • Dal punto di vista del programmatore o dell’utente la rete è il servizio di interconnessione tre due o più unità computazionali • Per Unità computazionale si intende un sistema in grado di eseguire delle istruzioni ed in generale del codice. • Un Computer monoprocessore è una unità computazionale • In un sistema multi-processore ogni CPU è una singola unità computazionale • Un sistema di rete è quindi un sistema parallelo, in grado di eseguire più processi contemporaneamente • Il legame e l’interazione tra questi processi avviene attraverso i servizi di interconnessione • La sincronizzazione tra i processi e, in generale il Coordinamento tra i processi è critico per il buon funzionamento del sistema • Un sistema di rete ha una quantità di risorse a disposizione superiore ad un sistema isolato con una singola unità computazionale • Le interazioni a basso livello sul servizio di rete si basano sul concetto di messaggio: le sequenze sincrone o a sincrone di messaggi per il coordinamento di due processi sono regolati dai protocolli • I protocolli possono avere diverse caratteristiche, possono essere definiti ad hoc dall’utente oppure regolati da uno standard 2003-20042003-2004 Reti di Calcolatori 2 modello Client/Server Dai Sistemi di IlRete ai Sistemi Distribuiti • Come un Sistema Operativo astrae la macchina digitale sottostante per ottenere una più potente gestione dello strumento hardware, allo stesso modo vengono creati (nel sistema operativo e non solo) astrazioni del supporto di rete per permettere un miglior uso delle risorse distribuite nelle diverse unità computazionali • Definizione di Sistema Distribuito: Insieme di sistemi distinti per località che cooperano per ottenere risultati coordinati • Distinti per Località: le diverse unità computazionali hanno una loro autonomia di computazione; per località si intende il contesto di esecuzione locale ad una specifica unità computazionale • Cooperano: si coordinano per ottenere un risultato comune • La complessità di un sistema distribuito è maggiore rispetto ad un sistema isolato • Un sistema isolato è un sistema deterministico e chiuso • Un sistema distribuito è invece aperto e quindi potenzialmente non deterministico • Esempio: i Generali Bizantini: • Lo scambio di messaggi tra gli eserciti può non essere corretto 2003-20042003-2004 Reti di Calcolatori 3 Il modello Client/Server Sistemi Distribuiti Valore della Soluzione Avere un sistema distribuito mi permette di: • accedere a risorse remote • condividere localmente risorse remote • Ottenere Sistemi di grandi dimensioni con moltissime risorse In più • • • • • offre diverse nuove possibilità: replicazione delle risorse bilanciare uso delle risorse tollerare fallimenti di risorse garantire qualità delle operazioni DINAMICITÀ del SISTEMA •aggiungere risorse al sistema aperto •QUALITÀ dei SERVIZI (QoS) • TRASPARENZA della ALLOCAZIONE Legge di Grosh • Il migliore bilancio costo/performance si ottiene sempre con un monoprocessore mainframe (senza problemi di memoria e I/O) • ovviamente con i limiti alla potenza di calcolo •velocità della luce •costi elevati aumentando l'integrazione 2003-20042003-2004 Reti di Calcolatori 4 Il modello Client/Server Sistemi Distribuiti Complessità Il sistema ha però seri problemi teorici e pratici • TERMINAZIONE DEI PROGRAMMI • COMPLESSITÀ DEI PROGRAMMI • CORRETTEZZA • EFFICIENZA • Concorrenza: moltissime attività (processi) possono essere in esecuzione • Nessun tempo globale: nessuna sincronicità degli orologi di un sistema distribuito • Fallimenti indipendenti: molte cause di fallimento, crash di macchine e possibili problemi di rete. 2003-20042003-2004 Reti di Calcolatori 5 Il modello Client/Server Le Architetture di Rete Local Area Network LAN - Wide Area Network WAN … INFOS • Sistemi Eterogenei di reti fisse e mobili • Strutture topologiche e configurazioni dinamiche • Diversi modalità di accesso ed estrema varietà di dispositivi REQUISITI tecnologici ed economici • • • • • COMMS .. - affidabilità tolleranza ai guasti condivisione delle risorse eterogeneità degli accessi uniformità in crescita e scalabilità • indipendenza dal numero dei nodi del sistema •apertura del sistema • capacità di evoluzione secondo necessità • adeguamento alle richieste distribuite • domande distribuite (prenotazioni aeree) 2003-20042003-2004 Reti di Calcolatori 6 Progetto di un programma (Applicazione) Il modello Client/Server Distribuita Applicazione Problema Sistema Operativo Architettura Algoritmo codifica mapping binding Tecnologia Linguaggio di Alto Livello 2003-20042003-2004 Reti di Calcolatori 7 Progetto di un programma (Applicazione) Il modello Client/Server Distribuita • Algoritmo: Risoluzione astratta • codifica in un opportuno linguaggio di alto livello • SVILUPPO in uno o più linguaggi • MAPPING • Configurazione: come divido il lavoro • Decisioni di allocazione per l'architettura scelta: chi fa cosa • DEPLOYMENT • decisioni specifiche per la esecuzione sulla architettura • BINDING • aggancio delle entità di programma sulle risorse di sistema • Si possono prendere molte decisioni prima della esecuzoine: •politiche prefissate e non variabili o adattabili Gestione Statica • il binding può essere differito alla esecuzione Gestione Dinamica del binding delle risorse 2003-20042003-2004 Reti di Calcolatori 8 Il Computazionali modello Client/Server Modelli La quasi totalità dei sistemi general purpouse si basano sul modello Von Neumann • modello sequenziale con una sola capacità di esecuzione In un sistema di rete mi trovo ad avere quindi una molteplicità di macchine di von Neumann che lavorano su flussi di esecuzioni parallele. Devo quindi costruire dei modelli di esecuzione considerando la molteplicità dei flussi di dati e di esecuzione • Single Instruction Multiple Data (SIMD) • Multiple Instruction Multiple Data (MIMD) • Classificazione di Flynn: Data stream/ Instruction Stream Unico flusso dati Flussi di dati multipli Unico flusso di istruzioni SISD (von Neuman) SIMD (sistemi vettoriali) Flussi Multipli di istruzioni MISD (pipeline) MIMD (macchine multiple) 2003-20042003-2004 Reti di Calcolatori 9 Il modello Sistemi MIMD Client/Server e SIMD Processori e Controllo Pe MIMD Pe Pe Processori Rete di Interconnessione e Controllo SIMD Pe Unica Unità di Controllo Pe Rete di Interconnessione Pe 2003-20042003-2004 Reti di Calcolatori 10 Il modello Client/Server Sistemi MIMD Multicomputer Nodo Processore Processore Nodo PP PP MM MM Cache Processore Memoria Processore Rete Rete didi Interconnessione Interconnessione Nodo Nodo PP MM PP MM Nodo PP MM 2003-20042003-2004 Reti di Calcolatori 11 Il modello Client/Server Interconnessione Memorie Processori Rete di Interconnessione tra processori e memorie 2003-20042003-2004 Reti di Calcolatori 12 Il modello Client/Server Accesso alla memoria Memorie Processori Pe M Pe Memorie Processori M M Pe Rete di Interconnessione tra processori e memorie Pe M M Rete di Interconnessione tra processori e memorie M Pe Pe M M M Uniform Memory Access 2003-20042003-2004 NON Uniform Memory Access Reti di Calcolatori 13 Il modello Client/Server Modelli a Memoria condivisa o non condivisa • La memoria condivisa costa: • Se la architettura non permette una veloce interconnessione tra i nodi diventa molto costoso accedere alla memoria di un altro nodo. • Due o più entità computazionali che accedono alla stessa risorsa di memoria devono sincronizzarsi, con il conseguente hoverhead di coordinamento. • Si sono quindi affermati nel tempo due modelli principali basati sulla presenza o meno della astrazione di memoria condivisa: • In assenza di memoria condivisa, i nodi non possono utilizzare la memoria per il coordinamento; lo scambio di messaggi diventa quindi lo strumento primario di comunicazione • È compito del sistema operativo creare astrazioni più potenti e flessibili al di sopra del semplice modello a scambio di messaggi 2003-20042003-2004 Reti di Calcolatori 14 Il modello Client/Server Riassumendo • Qualsiasi sistema interconnesso è un sistema di rete, al di sopra dei sistemi di rete vengono costruite astrazioni che permettono di usare in modo più efficiente le risorse a disposizione • La seguente tabella riassume le caratteristiche delle diverse architetture: Architettura Modello di Coordinamento Applicazioni Architetture parallele (decine di Memoria condivisa Grosse necessità di calcolo Architetture a parallelismo massiccio (centinaia o migliaia) Scambio di messaggi Esigenze specifiche Architetture di rete LAN (local area network) Scambio di messaggi Condivisione di risorse Architetture di rete WAN (wide area network) Scambio di messaggi Internet-like processori) 2003-20042003-2004 Reti di Calcolatori 15 Il modello Il Modello ClienteClient/Server Servitore • Servitore: entità computazionale in grado di eseguire una specifica prestazione per altre entità (in grado cioè di offrire un servizio) • Cliente: entità computazionale che richiede ad un servitore l’esecuzione di una specifica presatazione • Il rapporto cliente servitore è il principio su cui è possibile costruire applicazioni distribuite: • Banalmente, se un cliente risiede in un nodo e la risorsa è disponibile in un altro, deve per forza appoggiarsi ad una servitore locale alla risorsa per utilizzarla • Qualsiasi tipo di interazione è assimilabile ad un rapporto C/S • Una relazione C/S è ottenibile con diversi meccanismi di comunicazione • Sul modello C/S vengono costruiti gli standard sia di comunicazione sia di servizi per la costruizione di sistemi aperti 2003-20042003-2004 Reti di Calcolatori 16 modello Client/Server I meccanismi diIl comunicazione tra entità Scambio di messaggi (message passing): due entità possono dialogare attraverso uno scambio di messaggi. • È il meccanismo di più basso livello. Qualsiasi sistema di interconnessione è in grado di supportarlo. • Il principio di comunicazione basato su messaggi è il principio del request/response: • messaggi sincroni: il cliente si ferma in attesa della risposta • messaggi asincroni: il cliente prosegue nella sua esecuzione e periodicamente (polling) o mediante un meccanismo di wake up (eventi) verifica le risposte ricevute • Chiamata a Procedura Remota (RPC Remote Procedure Call): possibilità di invocare una funzione di un servizio remoto come fosse una libreria locale. • È un meccanismo di alto livello che sintetizza il rapporto cliente servitore attraverso un set di procedure messe a disposizione in remoto dal servitore • RMI: è la estensione in un contesto Object Oriented della RPC : Remote Method Invocation • Memoria Condivisa (Shared Memory – Monitor): due entità comunicano attraverso un’area di memoria condivisa. Il monitor è l’oggetto che si occupa di gestire la memoria in modo sincronizzato. Il cliente deposità nel monitor la sua richiesta ed il servitore legge e risponde attraverso lo stetto monitor 2003-20042003-2004 Reti di Calcolatori 17