Estensioni della Macchina Von Neumann Capitolo 12 Le estensioni della macchina di John Von Neumann¹ sono modelli di architettura dei calcolatori elettronici, che non si basano totalmente sul criterio della macchina di Von Neumann stessa. La macchina di Von Neumann formata dalle sue 4 principali parti (CPU, Memoria, standard I/O, Bus) è in grado di risolvere, per mezzo di operazioni algoritmiche, qualsiasi tipo di problema, ma a volte se quest ultimo è molto complesso, i tempi computazionali diventano eccessivi. Si è quindi ricercato un modo per affrontare e risolvere questi aspetti negativi. In analogia col funzionamento del cervello umano, si è cercato di sviluppare dei calcolatori che sappiano eseguire/elaborare delle operazioni in parallelo, per poter aumentare notevolmente la potenza di calcolo. Una macchina parallela può essere immaginata come tante macchine di Von Neumann, pensate però, per lavorare insieme parallelamente. Questo permette di svolgere più operazioni contemporaneamente, così come accade nell occhio umano, dove il nervo ottico e la corteccia cerebrale svolgono con parallelismo, diverse operazioni che possono essere ricondotte a somme e prodotti. Tassonomia di Flynn La teoria delle macchine parallele è stata studiata e classificata da Flynn nel 1966, questo studio e il grafico che ne segue prende il nome di Tassonomia di Flynn. Un solo insieme di dati Più insiemi di dati Un solo flusso di istruzioni SISD SIMD Più flussi di istruzioni MISD MIMD 1. John Von Neumann è considerato uno dei più importanti scienziati del secolo scorso. Ha collaborato con Einstein al progetto Manhattan e ha definito il concetto di informatica così come lo conosciamo oggi considerando che ai suoi tempi i calcolatori ancora non esistevano.
In base al flusso d istruzioni e al numero di dati le macchine parallele sono classificate in quattro principali categorie: SISD (Single Instruction Single Data) Categoria rappresentativa della classica macchina di Von Neumann. SIMD (Single Instruction Multiple Data) Una singola istruzione è applicata a più dati. Esempio GPU CUDA (scheda graficha) sfrutta processori paralleli² per elaborare una sola istruzione su moltissimi pixel. MISD (Multiple Instructions Single Data) Diverse istruzioni per elaborare singoli dati. Sono delle macchine quasi inesistenti, ne sono state costruite pochissime come il computer che assiste al volo dello Space Shuttle(Space Shuttle flight controll computer). MIMD (Multiple Instructions Multiple Data) Diverse istruzioni sono eseguite su diversi dati (Es. MESH, GRID, IPERCUBO, CLOUD) Un parametro che bisogna considerare quando si lavora con le macchine parallele è lo Speed Up. Se per esempio facciamo lavorare 1000 macchine in parallelo, non otteniamo una velocità di calcolo 1000 volte superiori, ma l incremento è circa dell 80-90%. Questo perché parte della potenza di calcolo è impiegata in risorse per la coordinazine di tutte le operazioni eseguite in parallelo. Legge di Moore La legge di Moore definisce, a partire dagli anni 70, l evoluzione in termini di velocità dei processori e delle memorie in funzione del tempo. Orientativamente la crescita delle velocità fino ad oggi è aumentata del doppio ogni anno e mezzo. Per le CPU siamo quasi alla soglia limite in quanto, i Chip hanno raggiunto dimensioni troppo grandi e si pongono problemi di raffreddamento e consumi energetici, mentre la dimensione degli elementi elettronici interni è dell ordine dei 10-14nm soglia molto vicina alla dimensione atomica, quindi vi è un impossibilità fisica di creare parti elettroniche ulteriormente più piccole³. Invece per le memorie il tasso di crescita è rimasto relativamente basso, ma lo sviluppo è tuttora in piena evoluzione. 2. Naturalmente tutti questi processori(nelle schede moderne siamo nell ordine delle migliaia) non sono in grado di fare tutto quello che fa un processore centrale, cioè le operazioni numeriche sono meno precise ma sufficienti per lavorare con le immagini. 3. Basti pensare che le dimensioni atomiche dei materiali siano dell ordine degli 0.5-1 nm(nanometri), quindi i transistor che compongono la CPU hanno le dimensioni di pochi atomi.
Il seguente grafico rappresenta la Legge di Moore dal 1970 a oggi: Architetture pipeline La Pipeline⁴ è un tipo di architettura, dove i singoli elementi attuano compiti diversi al fine di massimizzare la velocità di calcolo. Ad esempio nella CPU vi sono degli elementi specializzati in precisi compiti, come l ALU (Aritmethic Logic Unit) o la GPU integrata (Graphics Processing Unit). Due architetture particolarmente importanti sono la CISC (Complex Instruction Set Computers) e la RISC (Reduced Instruction Set Computers), la prima in grado di eseguire istruzioni complesse ma impiegando più tempo, la seconda eseguendo istruzioni semplici ma notevolmente più veloci. Alla loro nascita esistevano due scuole di pensiero, una credeva nelle potenzialità dell architettura CISC e l altra elogiava i vantaggi dell architettura RISC. L evoluzione nel tempo ha portato come risultato un compromesso che sfrutta parti di entrambe le architetture. Una tecnologia di evoluzione dei processori è l Hyper-threading dove più thread (processi) sono eseguiti in parallelo su più stadi fisici del processore opportunamente replicati in fase di costruzione⁵. 4.Traduzione letterale in italiano significa Catena di montaggio. Questo indica che nel processore vi sono più componenti che svolgono ognuna delle operazioni diverse in modo che alla fine del ciclo di clock si siano elaborate più informazioni. 5.I primi processori che hanno sfruttato la tecnologia Hyper-threading, sono la quarta generazione dei Pentium, che riprendono una tecnologia passata nota come Simultaneous multi-threading.
Due schemi di processori che sfruttano il parallelismo di due o più core sono i seguenti: Schema di un processore dual-core. Schema di un processore quad-core.
Reti di Calcolatori Capitolo 15 L informazione automatica (i bit) può viaggiare attraverso vari canali di comunicazioni fisici quali: Cavi in rame, Fibre ottiche, Onde radio e wireless. I bit, essendo dei segnali digitali, per passare attraverso questi canali hanno bisogno d impulsi elettrici per i cavi, di segnali luminosi per la fibra ottica e d impulsi elettromagnetici per le onde radio. Per avere un passaggio di dati effettivo si ha bisogno di un perfetto passaggio d informazione. Se ammettessimo un errore di un bit su un miliardo, avremmo un passaggio persistente di dati errati considerando che ad esempio nella trasmissione in fibra ottica, si ha un passaggio dell ordine di 1-2 Gbit/s nelle reti metropolitane fino a soglie di 40 Gbit/s lungo le reti dorsali⁶. Laddove i canali hanno dei nodi di connessione sono sistemati degli apparati di rete: Gli Hub, i router o dei bridge/switch con il compito di instradare i pacchetti di dati. Gli Hub sono ormai sostituiti dagli Switch e possono connettere solo reti perfettamente identiche e generalmente gestiscono il traffico locale. I router si occupano del traffico sia interno sia esterno e sono collegati a canali diversi fra loro. Si distinguono tre tipi di reti secondo la loro estensione territoriale: LAN Local Area Network (rete locale), che collega nodi relativamente vicini, nell ambito tipicamente di uno stesso edificio. MAN Metropolitan Area Network (rete metropolitana) sfrutta collegamenti a distanze massime di decine di chilometri. WAN Wide Area Network (rete geografica), che collega nodi a distanza qualsiasi, anche planetaria, detta anche dorsale. Più il canale è lungo, più è rumoroso e più si ha la possibilità di commettere errori. Per ridurre al minimo questi errori o cercare di eliminarli completamente, abbiamo bisogno che il segnale sia modulato in entrata e demodulato in uscita. Quest operazione è garantita dai modem. I modem sono sistemati a entrambi i capi dei canali, ad esempio in tutti i cellulari è presente un modem che permette di collegarci alla rete telefonica. Nei cellulari moderni, la voce dopo essere stata trasformata in bit, è raggruppata in pacchetti e inviati all indirizzo che il gestore dell utenza telefonica stabilisce. Il percorso può seguire strade diverse, ma l univocità dell indirizzo ne garantisce comunque l arrivo all utente giusto, nell ordine modulato alla partenza. 6. Gli apparati commercialmente disponibili arrivano a velocità di trasmissione massima di 40 Gbit/s. Utilizzando tecnologie WDM(Wavelength Division Multiplexing) è possibile trasmettere su una singola coppia di fibre fino ad alcune centinaia di canali in frequenza, arrivando a capacità massime dell'ordine del Tbit/s.
Struttura dei Messaggi e dei Pacchetti I pacchetti sono formati da tre parti, l header (intestazione), dove sono presenti l indirizzo IP e l inizio del pacchetto, il payload (carico utile), cioè i bit che rappresentano l informazione effettiva e il footer(titolo di coda o piè pagina) che contiene i bit di controllo per la trasmissione e la fine del pacchetto. In Internet (rete a pacchetti), fra le maglie a cui fanno capo dei calcolatori l informazione è sempre scambiata tramite dei pacchetti e l indirizzo che identifica l utente è chiamato Indirizzo IP (Internet Protocol address). Infatti, gli apparati di rete instradano(routing) il messaggio verso l indirizzo tramite degli opportuni protocolli. L indirizzo IP è definito da 4 numeri che vanno da 0 a 255. Per fare una similitudine supponiamo di dividere il mondo in 255 nazioni, ogni nazione in 255 regioni, ogni regione in 255 città e in ogni città 255 computer. In questo modo riusciamo a identificare univocamente oltre 4.2 miliardi di computer. Nei giorni nostri gli indirizzi IP che si potevano generare con la serie dei 4 numeri sono stati quasi del tutto distribuiti, quindi si sta provvedendo a crearne di nuovi con un nuovo protocollo IPV6 con ben sei numeri in grado di contare fino a 2.8 migliaia di miliardi di indirizzi. Client/Server e Peer-to-Peer Un architettura molto diffusa in internet è la Client/Server che attraverso la richiesta del cliente, il server fornisce il software o le pagine web richieste. Invece l architettura Peer-to-Peer che tradotta in italiano vuol dire pari a pari ogni file richiesto c è una condivisione con la comunità che lo fornisce.
I servizi Internet Capitolo 16 Nel capitolo precedente abbiamo descritto il modo fisico di come passano le informazioni nel gigante che ha preso sempre più spazio nel mondo moderno Internet. In economia vi è una netta distinzione che divide il mondo del lavoro in due grandi categorie: vendita di servizi e vendita di prodotti. Internet è preposta alla vendita di servizi, poiché attraverso la rete è possibile solo uno scambio d informazioni. Ultimamente però una parte del Rete si orientata alla vendita di prodotti on-line, questo filone prende il nome di Internet of things (internet delle cose). A parte Internet of things in genere nella rete vi è un erogazione di servizi da qualcuno a qualcun altro. Le pagine WEB,la posta elettronica,l audio, il video, le comunicazioni in real-time, il Cloud computing sono tutti servizi che eroga internet. Come nasce internet? Poco dopo che l America scopri la bomba atomica si costatò che la potenza di quest ordigno era in grado di mettere in ginocchio qualsiasi centro di comando, anche basi nascoste in bunker all interno di una montagna. La cosa più logica fu quella di chiedere alle università, che avevano contribuito alla scoperta della bomba, un modo per difendersi dalle emissioni elettromagnetiche durante l esplosione di quest ultima. Su richiesta dell ARPA (Advnced Research Projects Agency) nell 1969 fu costruita una rete di comunicazione, chiamata ARPANET basata su molteplici canali che collegava due università fra loro. Il passaggio delle comunicazioni su tutti i canali in maniera ridondante ne garantiva inattaccabilità in quando anche colpendo uno dei nodi, gli altri rimasti ne garantivano il passaggio delle informazioni. Dopo furono collegate altre due università e nel 1971 fu spedita la prima lettera di posta elettronica. La rete ARPANET sfruttava il primo protocollo a pacchetti della storia, per lo più serviva a comunicare in tempo reale e a fare operazioni di controllo in remoto.
Nel 1975 MILNET si staccò e diventò la rete militare della difesa, mentre ARPANET rimase legata alle università America. In seguito attraverso reti planetarie internet è cresciuta in maniera vertiginosa come la conosciamo oggi. Dopo un evoluzione così repentina, il risultato è che ogni giorno sono connessi milioni di utenti come mostra il grafico: Protocolli TCP/IP I protocolli di base si chiamano TCP(Transmission Controll Protocol),IP(Internet Protocol),UDP(User Transmission Protocol). Il protocollo IP individua destinazione e sceglie il percorso della consegna, il protocollo TPC garantisce la consegna dei pacchetti eventualmente smarriti ma è lento proprio per recuperare i pacchetti persi. Invece il Protocollo UDP è più veloce ma non avendo meccanismi per il recupero dei pacchetti non può garantire la consegna. I protocolli TCP/IP sono divisi in quattro livelli di cui fanno parte altri tipi di protocollo quali: HTTP(Hyper Text Transfer Protocol) si usa per spostare i documenti delle pagine WEB, HTTPS(Hyper Text Transfer Protocoll Secure)si usa per trasferire pagine web criptate, HTML (Hyper Text Markup Language) viene usato dai browser per saper cosa contiene la pagina WEB,ICMP(Internet Controll Message Protocol)è un protocollo di servizio che si occupa di mandare dei messaggi di malfunzionamento, FTP(File Transfer Protocol) si usa per trasferire i file, SMTP(Simple Mail Transfer Protocol) è il protocollo standard per la trasmissione via internet di e-mail, ecc. I protocolli dello standard OSI (Open System Interconnection) definito dall ISO (International Standard Organization) sono più moderni dei protocolli TCP/IP. Questi protocolli definiscono la comunicazione dei pacchetti attraverso sette livelli che definiscono appunto ogni tipo di protocollo che viene usato. Nella figura è rappresentata la corrispondenza fra livelli TPC/IP e OSI/ISO:
Indirizzi IP DNS Meccanismo dei nomi di dominio Il DNS(Domain Name Sistem) è server che associa un nome di dominio ad un indirizzo IP. Se ad esempio digitiamo www.polimi.it viene letto alla rovescia partendo da it(primo livello di dominio distribuito dalla ICANN(Internet Corporation for Assigned Name and Numbers) che indica in che nazione mondiale dobbiamo cercare l indirizzo, polimi( sotto dominio o secondo dominio che indica più precisamente dov è l indirizzo), www(terzo dominio o indirizzo IP vero e proprio che identifica univocamente il computer cercato all interno di polimi.it). Se ad esempio pensiamo a una struttura ad albero, possiamo immaginarla cosi: World Wide Web Il WEB è un sistema per la gestione di documenti su internet, questi sono chiamati ipertesti per il semplice motivo che possono essere considerati adattivi. Infatti, essi nascono prima d internet poiché per rendere, un libro più leggibile si corredava d ipertesti(note a pie pagina, bibliografia, ecc.) per facilitare la lettura anche a chi non sapeva nulla del libro, ma consentire anche a chi già aveva delle nozioni di leggere più spedito. In maniera analoga i siti WEB hanno dei link e delle strutture ad albero che permettono di facilitare la ricerca dei contenuti cercati. Per trovare dei siti in internet si fa riferimento a dei motori di ricerca detti WEB Browser. Quando si richiede una pagina WEB la si scrive nella URL di un motore di ricerca(google, yahoo, firefox, ecc.) e tramite i sui innumerevoli link collegati ai WEB Server ci apre la Home page(pagina principale) del sito cercato.
Un altro servizio offerto dal WEB è la posta elettronica che tramite alcuni protocolli come POP3(Post Office Protocol versione 3) e IMAP consente di ricevere e di mandare documenti di testo all indirizzo IP desiderato. Dal WEB vi è anche la possibilità di ascoltare musica, vedere video, tramite il download di file oppure in streaming. Si può parlare al telefono con la tecnologia Voip(Voice Over IP) o con programmi appositi (Skipe, Viper, massenger ecc.) Alcuni servizi internet ad esempio le comunicazioni in Real Time usufruiscono del QoS (Quality of Service) una serie di protocolli che garantisce la priorità ai dati contenuti. Cloud Computing Alcuni servizi che Internet offre, che ottengono sempre più successo, prendono il nome di Cloud computing e sono principalmente di tre tipi: IaaS(Infrastrcutre-as-a-Service) letteralmente infrastruttura sotto forma di servizio; Il Cloud Provider offre delle strutture (hardisk, firewall, macchine virtuali, ecc.) su ordine del cliente che paga il tempo necessario per risolvere eventuli picchi di richieste di lavoro. Esempi di IaaS sono Amazon Elastic Cloud e Rackspace. PaaS(Platform-as-a-Service) in italiano piattaforma come servizio; Il Provider fornisce ad esempio un ambiente di calcolo ad alte prestazioni o con programmi in linguaggi particolari. Esempi di Paas sono Google App Engine e Microsoft azure. SaaS(Software-as-a-Service) tradotto programmi come servizio; E un servizio del Cloud che permette di lavorare in remoto con particolari programmi. Esempi di SaaS sono GoogleApps e Microsoft Office 365. Le diverse forme di cloud computing anche se molto diverse fra loro sono caratterizzate da tre aspetti comuni: Accesso via internet: per tutti i cloud l accesso ai servizi deve avvenire dalla rete o dal WEB.
On-Demand: L accesso o la disattivazione ai servizi cloud avviene in maniera semplice e intuitiva senza l obbligo di conoscenze specifiche nel programma o macchine virtuali. Pay per Use: il costo del servizio attivato è sostenuto dal cliente in base all effettivo utilizzo del servizio in qualità dell accorto stabilito col fornitore. Scritto e redatto da Stasi Carmelo e De Salvatore Alfonso