RETI - gallinigenova.altervista.org · Il Modello ISO – OSI ... In questo livello lavora il...
-
Upload
trinhthuan -
Category
Documents
-
view
217 -
download
0
Transcript of RETI - gallinigenova.altervista.org · Il Modello ISO – OSI ... In questo livello lavora il...
RETIRETIcalcolocalcolo paralleloparallelo,,
calcolocalcolo distribuitodistribuito
Approfondimento sulle
Pablo GenovaPablo Genova
InformaticaInformatica A. S. 2016-2017A. S. 2016-2017
Istituto Statale di Istruzione SuperioreIstituto Statale di Istruzione Superiore A. Omodeo, MortaraA. Omodeo, Mortara Indirizzo Tecnico EconomicoIndirizzo Tecnico Economico
Il Modello ISO – OSIIl Modello ISO – OSI Approfondimento: come è strutturata una rete?
Esiste uno standard chiamato
Open System Interconnection OSI
stabilito dall'
International Organization for Standardization ISO
Modello ISO – OSIISO – OSI: standard internazionale che descrive la struttura di una rete di calcolatori.
Il modello ISO –– OSI descrive un'architettura di rete composta da 7 livelli ben precisi che insieme svolgono tutte le funzionalità della rete.Per ogni livello sono definiti opportuni protocollli di comunicazione (= regole di comunicazione → ripasso)
Il Modello ISO – OSIIl Modello ISO – OSI Ecco i sette livelli
Applicazione
Presentazione
Sessione
Trasporto
Rete
Collegamento
Fisico
Dati
DATA LINK
layer
NETWORK
Frames
Il Modello ISO – OSI caratteristiche generaliIl Modello ISO – OSI caratteristiche generali
ROUTER
Host: singolo nodo di connessione (pc, portatile, smartphone etc etc)
Osserva il flusso dei dati attraverso i vari livelli
Host1 → Router1 → Router2 → Host2
La linea nera indica il flusso dei dati lungo la rete
Il router= “instradatore” lavora solo sui primi 3 livelli: FISICO – COLLEGAMENTO DATI – RETE
““Evoluzione della specieEvoluzione della specie””: il router negli anni : il router negli anni
The Interface Message Processor primo router della storia1969
1987 router CISCO al CERN
OGGI router CISCO 7600aziendale
OGGI router domestico
CISCO 7600
I LIVELLI PRINCIPALI DEL MODELLO ISO OSI I LIVELLI PRINCIPALI DEL MODELLO ISO OSI
Dei sette livelli che abbiamo introdotto i più importanti solo i seguenti 5:
LIVELLO FISICO – PHYSICAL LAYER
LIVELLO COLLEGAMENTO DATI – DATA LINK LAYER
LIVELLO RETE – NETWORK LAYER
LIVELLO TRASPORTO – TRANSPORT LAYER
LIVELLO APPLICAZIONE – APPLICATION LAYER
H O S T
R O U T E R
Ogni livello comunica in modo opportuno con il livello sottostante e/o soprastante, in ogni livello sono definiti opportuni protocolli. I livelli sessione (session) e presentazione (presentation) sono meno usati
Il router usa soltanto i primi tre livelli, gli hosts tutti i livelli
I PRIMI TRE LIVELLI: FISICO – DATA LINK – RETE I PRIMI TRE LIVELLI: FISICO – DATA LINK – RETE
Livello Fisico:
questo livello si occupa della trasmissione dei bit “grezzi” su un canale di trasmissione. La sua unità è il bit, i canali di trasmissione possono essere di tre tipi: 1) elettrico → rete via cavo2) ottico → fibra ottica 3) onda elettromagnetica → connessione senza fili
Livello Data linkcollegamento dati:
questo livello controlla la corretta trasmissione dei dati. Per fare ciò lavora con un gruppo di byte detto frame. In sintesi fa tre operazioni:1) spezzetta i dati in frames (gruppi di bit)2) invia in frames in sequenza3) aspetta un ack (= acknowledgement frame) è un segnale per dire che “va tutto bene” (o capire gli errori)
E' un livello di controllo e regolazione del traffico
In questo livello di data link è
definito il MAC ADDRESS
Livello ReteNetwork
questo livello si occupa dell'instradamento (routing) di pacchetti di dati. Esso lavora con un pacchetto di dati, che viene opportunamente inviato lungo opportuni percorsi di rete → algoritmo di routing, scelta del miglior cammino, trattamento della congestione della rete.In questo livello lavora il protocollo IP, è definito l'indirizzo IP (→ ripasso)
TRANSPORT & APPLICATION LAYERS TRANSPORT & APPLICATION LAYERS
Livello Trasportotransport
questo livello è presente solo sugli hosts è il cuore di tutta la gerarchia dei protocolli. Esso provvede alla gestione complessiva del trasferimento dei dati da un host ad un altro (“end to end”).
Lavora da un host ad un altro, mediante segmenti di dati, occupandosi della connessione, del flusso dei dati, della congestione, dell'affidabilità, dell'indirizzamento (ad esempio mediante):
IP ADDRESS + NUMERO DI PORTA
Protocollo tipico TCP Transmission (o Transfer) Control ProtocolAttenzione: non è il trasporto fisico dei dati! (ciò avviene nei livelli sottostanti)
Livello Applicazione
questo livello è, finalmente, il livello in cui lavora l'utente.L'unità di questo livello sono i dati (che come abbiamo visto vengono poi spezzettati in segmenti – pacchetti – frames – bits).In questo livello ci sono i terminali dell'utente, la grafica, le shell...I protocolli come http (ripasso → ipertesti), scp e ftp (ripasso → trasferimento files) smtp e pop (ripasso → gestione mail) sono tutti al livello applicazione.
MAC ADDRESS VS IP ADDRESS MAC ADDRESS VS IP ADDRESS
MAC ADDRESS o indirizzo fisico: codice di 48 bit (6 bytes) assegnato in modo univoco dal produttore ad ogni scheda di rete ethernet o wireless prodotta al mondo.MAC sta per Media Access Control, il MAC Address è definito nel livello 2 del Modello ISO OSI, livello DATA LINK
Esempio: 02 – 50 – E2 – 9F – 66 – 7B sei numeri (tra 00 e FF) in notazione esadecimale (base 16) separati da “–”
indirizzo IP: (→ ripasso) etichetta numerica che identifica un host nel protocollo IP, costituita da 32 bit (4 bytes).E' definito nel livello 3 Network/Rete, dove è definito (anche) il protocollo IP
Esempio: 192.128.3.0 quattro numeri compresi tra 0 e 255 in notazione decimale separati da “.”
Da shell (DOS) il comando ipconfig -all permette di visualizzare sia il MAC address che l'IP address
CALCOLO PARALLELO CALCOLO PARALLELO Calcolo parallelo: esecuzione simultanea di un programma o di un processo su più processori, su più CPU contemporaneamente.
Nei sempre più diffusi sistemi MULTICORE (vedi slide), il PC è già costituito da più CPU, più cores che lavorano in parallelo
Il processo viene suddiviso in singoli sottoprocessi chiamati threads (“fili”)
Il “vero” calcolo parallelo avviene quando ogni threadviene eseguito su una CPU diversa (un core diverso)[se si ha una sola CPU si può solo eseguire ora un thread ora l'altro, alternando i thread, ma non è un vero parallelismo]
Con questa tecnica si può velocizzare notevolmente l'esecuzione di un programma.
Attenzione: non tutto è parallelizzabile!
Legge di AmdahlAumentando il numero di processori, aumenta la velocità dell'esecuzione del programma, fino ad unvalore massimo dipendente dalla frazioneparallelizzabile, vedi grafico ascisse (x) numero di processori
ordinate (y) velocità del programmaAL VARIARE DELLA FRAZIONE PARALLELIZZABILE
CALCOLO DISTRIBUITO CALCOLO DISTRIBUITO Calcolo distribuito: è un concetto analogo a quello di calcolo parallelo, anche in questo caso si aumentano le prestazioni eseguendo in parallelo uno o più processi. Per capire la differenza bisogna considerare sia il processore sia la memoria (→ ripasso archiettura di Von Neumann)
Nel calcolo distribuito le risorse sono distribuite: ci sono tanti processori e tante memorie fisicamente distinte. Esse lavorano in parallelo scambiandosi (opportune) informazioni.
schema calcolo distribuito
schema calcolo parallelo
Nel calcolo parallelo ci sono tanti processori ma un'unica memoria condivisa
Nel calcolo distribuito ci sono tanti processori e tante memorie distinte che si scambiano informazioni
SISTEMI MULTI - CORE SISTEMI MULTI - CORE
I processori che usiamo oggi (anche sui telefonini!!) sono multi-core:hanno infatti un certo numero di processori distinti che lavorano in parallelo,tipicamente 2, 4, 6, 8 (dual, quad, esa, oct – core, ma può anche essere un numero dispari)
L'architettura nel dual-core diventa così
L1 Cache e L2 Cache sono memorie veloci associate al singolo processore, la RAM è condivisa con entrambi i processori
ogni processo è suddivisoin tanti threads che vengonoeseguiti indipendentemente
esempio quad-core
SEMPLICE ESEMPIOSEMPLICE ESEMPIO DI ALGORITMO PARALLELO DI ALGORITMO PARALLELO Somma dei numeri da 0 a 99
in 4 processi paralleliINIZIO
fork()fork()così spezzo in 4 parti il lavoro
iterazione da 0 a 24
join()
iterazione da 25 a 49
iterazione da 50 a 74
iterazione da 75 a 99
1 2 3 4
Ognuno dei blocchi 1-2-3-4
corrisponde ad una serie di blocchi di tipo iterativo come quelli già visti
S
join() così metto insieme il lavoro (join)
questa parte tra fork e join
è
calcolo parallelo
usandoCPU diverse
o core diversi
Attenzione: questa parte non è parallelizzata
stampo S (risultato somma)
Legge di Amdahl “in agguato”:non tutto è parallelizzabile FINE
Domanda: rispetto all'algoritmo non parallelo, questo algoritmo parallelo di quanto sarà più veloce? … Pensaci!
GRID (griglia) E CLOUD (nuvola)GRID (griglia) E CLOUD (nuvola)Queste tecniche di parallelizzazione e distribuzione del calcolo vengono (e verranno) utilizzate in modo sempre più frequente, non solo fra pochi computers, ma su scala mondiale (come per il web).
In particolare si parla di:
GRID o grid computing
CLOUD o cloud computing
GRID e CLOUD sono concetti simili, ma non identici.
Senza entrare nel dettaglio, i progetti GRID sono più orientati all'ambito scientifico, sono non profit e gratuiti, specializzati in settori specifici quali un esperimento scientifico, invece il CLOUD tipicamente è pensato in ambito privato e commerciale, di utilizzo generale (non solo orientato al calcolo o ad un progetto specifico), con servizi a pagamento.
In entrambi i casi, con modalità diverse, si ottiene il risultato di distribuire e parallelizzare le risorse hardware e software con grande vantaggio