La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2003-20042003-2004Reti di Calcolatori1. 2003-20042003-2004Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.

Presentazioni simili


Presentazione sul tema: "2003-20042003-2004Reti di Calcolatori1. 2003-20042003-2004Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore."— Transcript della presentazione:

1 2003-20042003-2004Reti di Calcolatori1

2 2003-20042003-2004Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore o dellutente 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 linterazione 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 dallutente oppure regolati da uno standard

3 2003-20042003-2004Reti di Calcolatori3 Il modello Client/Server Dai Sistemi di Rete 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

4 2003-20042003-2004Reti di Calcolatori4 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

5 2003-20042003-2004Reti di Calcolatori5 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.

6 2003-20042003-2004Reti di Calcolatori6 Il modello Client/Server Le Architetture di Rete Local Area Network LAN - Wide Area Network WAN … 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 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)

7 2003-20042003-2004Reti di Calcolatori7 Il modello Client/Server Progetto di un programma (Applicazione) Distribuita

8 2003-20042003-2004Reti di Calcolatori8 Il modello Client/Server Progetto di un programma (Applicazione) 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

9 2003-20042003-2004Reti di Calcolatori9 Il modello Client/Server Modelli Computazionali 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 datiFlussi di dati multipli Unico flusso di istruzioni SISD (von Neuman) SIMD (sistemi vettoriali) Flussi Multipli di istruzioni MISD (pipeline) MIMD (macchine multiple)

10 2003-20042003-2004Reti di Calcolatori10 Il modello Client/Server Sistemi MIMD e SIMD

11 2003-20042003-2004Reti di Calcolatori11 Il modello Client/Server Sistemi MIMD Multicomputer

12 2003-20042003-2004Reti di Calcolatori12 Il modello Client/Server Interconnessione

13 2003-20042003-2004Reti di Calcolatori13 Il modello Client/Server Accesso alla memoria

14 2003-20042003-2004Reti di Calcolatori14 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

15 2003-20042003-2004Reti di Calcolatori15 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: ArchitetturaModello di Coordinamento Applicazioni Architetture parallele (decine di processori) Memoria condivisaGrosse necessità di calcolo Architetture a parallelismo massiccio (centinaia o migliaia) Scambio di messaggiEsigenze specifiche Architetture di rete LAN (local area network) Scambio di messaggiCondivisione di risorse Architetture di rete WAN (wide area network) Scambio di messaggiInternet-like

16 2003-20042003-2004Reti di Calcolatori16 Il modello Client/Server Il Modello Cliente 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 lesecuzione 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

17 2003-20042003-2004Reti di Calcolatori17 Il modello Client/Server I meccanismi di 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 unarea di memoria condivisa. Il monitor è loggetto 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


Scaricare ppt "2003-20042003-2004Reti di Calcolatori1. 2003-20042003-2004Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore."

Presentazioni simili


Annunci Google