 
                                Fondamenti di informatica Oggetti e Java Luca Cabibbo Storia e evoluzione dei sistemi di calcolo Capitolo 1bis ottobre 2015 1 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Storia ed evoluzione dei sistemi di calcolo L’architettura di Von Neumann è una descrizione, precisa ma semplificata, dell’architettura dei computer  ma quali sono le evoluzioni significative avvenute in questi anni relativamente all’architettura dei computer?  quale l’impatto delle reti di calcolatori?  quale il futuro (prossimo) dei sistemi di calcolo? 2 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Un po’ di storia Il primo computer programmabile è ENIAC (1946)  Electronic Numerical Integrator and Calculator 3 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo ENIAC ENIAC – Electronic Numerical Integrator and Calculator (1946)  lungo 30 metri, alto 3 metri, pesante 30 tonnellate  18000 valvole  capace di sommare due numeri a 10 cifre in 1/5000 di secondo – e di moltiplicarli in 1/300 di secondo  un centinaio di byte di memoria principale  costo: circa mezzo milione di dollari di allora (circa 6 milioni di dollari di oggi) 4 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Generazioni di computer A partire dall’ENIAC, è possibile identificare alcune generazioni principali di computer  ciascuna generazione fa riferimento a una diversa tecnologia di base  ciascuna generazione  aumenta in modo significativo le capacità di calcolo  diminuisce in modo significativo i costi 5 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Prima generazione Prima generazione – 1946-1956  basata su tecnologia a valvole  le valvole si bruciano spesso, e quindi vanno sostituite quasi continuativamente  memoria principale: circa 2K byte  istruzioni al secondo: circa 1K  applicazioni scientifiche e ingegneristiche (limitate)  costo dell’esecuzione di 100K operazioni: molti dollari 6 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Seconda generazione Seconda generazione – 1957-1963  basata su tecnologia a transistor  tecnologia più piccola, meno consumo di energia, meno calore  memoria principale: 32K byte  istruzioni al secondo: circa 300K  applicazioni scientifiche, ingegneristiche, aziendale (buste paga)  costo dell’esecuzione di 100K operazioni: qualche dollaro 7 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Terza generazione Terza generazione – 1964-1979  basata su tecnologia a circuiti integrati  centinaia (poi migliaia) di transistor su un singolo circuito  memoria principale: 2M byte  istruzioni al secondo: circa 5M  applicazioni in molti campi applicativi, scientifici, ingegneristici e aziendali  costo dell’esecuzione di 100K operazioni: qualche centesimo di dollaro 8 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Quarta generazione Quarta generazione – 1980-oggi  basata su tecnologia VLSI (very large-scale integrated circuits) e microprocessori  centinaia di milioni o miliardi di transistor su un singolo circuito o pacchetto  memoria principale: ordine dei G byte (o superiori)  istruzioni al secondo: ordine di G (o superiori)  applicazioni in molti campi applicativi, scientifici, ingegneristici e aziendali – ma anche personali  costo dell’esecuzione di 100K operazioni: qualche milionesimo di dollaro 9 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Computer oggi In effetti, oggi esistono numerose tipologie di computer (o oggetti con capacità di calcolo significative) – rivolte a utenti differenti  un elenco incompleto di categorie – con capacità di calcolo via via inferiori  mainframe e supercomputer – applicazioni scientifiche e aziendali  minicomputer e server – applicazioni aziendali  workstation – per applicazioni multimediali e per lo sviluppo/la progettazione (CAD/CAM/CASE)  personal computer  notebook  tablet  altri dispositivi – smartphone, ... 10 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Avanzamenti nell’architettura dei computer Alcuni avanzamenti nell’architettura dei computer – rispetto al modello di von Neumann  parallelismo nel funzionamento dei microprocessori  pipelining – il processore parallelizza il flusso di elaborazione delle istruzioni – ad es., mentre fa l’execute di un’istruzione fa anche la decode dell’istruzione successiva e la fetch di quella successiva ancora – aumentando il numero di istruzioni completate nell’unità di tempo  multiprocessori – presenza di più processori indipendenti su un singolo circuito (multicore) o computer – è possibile eseguire più programmi in parallelo – oppure programmi che prevedono attività svolte in parallelo  uso di processori dedicati – ad esempio, per la gestione della grafica  gerarchie di memoria – ad es. cache a più livelli  evoluzione delle memorie secondarie  molteplicità di periferiche disponibili 11 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Reti di calcolatori e Internet Naturalmente, una delle evoluzioni più significative nel mondo dell’informatica è costituita dalle reti di calcolatori e da Internet  una rete di calcolatori è un sistema (una rete di telecomunicazione) che consente lo scambio di messaggi e dati tra computer  Internet è la più grande rete di calcolatori, a livello mondiale, che offre ai suoi utenti numerosi servizi  world wide web (www)  email  motori di ricerca  file sharing  chat e messaggistica  VoIP  ... 12 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Reti di calcolatori Una rete di calcolatori è un sistema per la connessione di computer che consente lo scambio di messaggi e dati tra computer  diversi tipi di reti di calcolatori  una rete locale (LAN, Local Area Network) consente di connettere computer all’interno di un edificio  una rete geografica (WAN, Wide Area Network) è in grado di collegare i computer di città diverse e nazioni diverse  le reti geografiche sono realizzate come reti di reti di calcolatori  una rete di reti di calcolatori (internet) contiene collegamenti tra reti di calcolatori diversi  Internet (con la I maiuscola) è la più grande e diffusa rete geografica, a diffusione mondiale 13 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Scambio di dati in Internet Internet offre dei servizi che consentono lo scambio di dati/messaggi tra computer (la descrizione che segue è molto semplificata)  ogni computer è caratterizzato da un indirizzo univoco su Internet – chiamato indirizzo IP  per inviare un messaggio a un altro computer, il mittente deve conoscere l’indirizzo del destinatario  i dati del messaggio vengono codificati in “pacchetti” – che vengono trasmessi in rete sotto forma di segnali elettrici  i pacchetti all’interno di una LAN sono trasmessi in modo analogo a come vengono scambiati i dati su un bus  ma se mittente e destinatario sono su LAN diverse, viene stabilito un percorso di instradamento dei pacchetti – i pacchetti vengono trasmessi tra reti adiacenti  se si verificano degli errori di trasmissione – o se vengono persi dei pacchetti – avviene automaticamente una ritrasmissione dei pacchetti corrotti o persi 14 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo World Wide Web Il World Wide Web (WWW o web) è il servizio di Internet che permette di condividere un insieme vastissimo di contenuti multimediali e di ulteriori servizi  due ruoli principali sul web  fornitore (provider) di contenuti o servizi – ad esempio, www.amazon.it oppure www.uniroma3.it  fruitore (client) di contenuti o servizi – ad esempio, Mario Rossi che vuole acquistare un libro o prenotarsi a un esame 15 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Esempio – World Wide Web Come funziona il web? Ecco un breve esempio  Mario Rossi, tramite il suo computer e l’uso di un browser web, invia una richiesta di visualizzazione di una certa pagina al computer di Amazon  questa richiesta viene trasmessa come messaggio tramite Internet  il computer di Amazon, tramite un server web (è un’applicazione), riceve la richiesta di Mario Rossi, capisce quale informazione o pagina è stata richiesta, e la invia come risposta a Mario Rossi  questa risposta viene trasmessa come messaggio tramite Internet  il computer di Mario Rossi riceve la risposta, e si occupa di visualizzare l’informazione o la pagina richiesta tramite il browser web 16 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Esempio – Motori di ricerca Un motore di ricerca – ad esempio, Google – consente di effettuare la ricerca di documenti sul web sulla base di parole chiave – ad esempio, fondamenti di informatica ingegneria elettronica roma tre  come funziona un motore di ricerca?  due attività distinte  i computer del motore di ricerca eseguono continuamente dei programmi che navigano sul web, ne scaricano le pagine localmente e poi “indicizzano” queste pagine – ad esempio, sulla base dell’estrazione di parole chiave – e memorizzano questi indici su altri computer  quando un utente del motore di ricerca chiede di effettuare una ricerca, le parole chiave specificate vengono cercate negli indici che sono stati calcolati in precedenza – è per questo che le ricerche sono effettuate molto velocemente  il numero di computer coinvolti è molto molto molto grande 17 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Dal Web al Web 2.0 Dal Web al Web 2.0  recentemente si parla del Web 2.0 come evoluzione del Web – quale la distinzione principale?  nel web, come detto, ci sono due ruoli principali: fornitori di contenuti e fruitori di contenuti  nel web 2.0, invece, ogni utente può essere, anch’esso, fornitore di contenuti  un utente può fornire contenuti sul web 2.0, in modo che siano fruibili da altri, in molti modi  blog  wiki  forum  social network – Facebook, Google Plus, Flickr, ...  ... 18 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Breve storia di Internet Breve storia di Internet  da un progetto di origine militare, nel 1969 nasce Arpanet, la prima rete di calcolatori – collegava 4 computer  nel 1982 viene coniato il nome Internet, e viene definito il protocollo TCP/IP  nel 1984, 1K computer collegati ad Internet  nel 1986, il primo computer in Italia collegato ad Internet  10K computer nel 1987, 100K nel 1989  nel 1991, il CERN annuncia la nascita del World Wide Web  1M di computer nel 1992, 10M nel 1996  nel 1998 viene fondato Google (ma non è il primo motore di ricerca) – oggi è il sito più visitato al mondo  nel 2004 viene fondato Facebook (ma non è il primo social network) – oggi è il secondo sito più visitato al mondo  1G utenti nel 2009, 2G utenti nel 2011 19 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Presente e futuro (prossimo) In questi anni è stata definita una quinta generazione di computer  basata su tecnologia Massive Parallel Computing – ovvero, sull’elaborazione enormemente parallela  migliaia di processori che lavorano in modo concertato, suddividendosi il carico di lavoro  20 insieme a tecnologie come i cluster di computer, la virtualizzazione, e la presenza pervasiva di Internet, è alla base del cloud computing Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Cloud computing Il cloud computing è un insieme di tecnologie che permettono ad un utente/cliente di memorizzare e elaborare dati grazie all’utilizzo di risorse hardware/software distribuite e virtualizzate in rete  in pratica, un utente, tramite il suo computer (anche piccolo), può memorizzare dei dati (anche in quantità grandi) e elaborarli (anche tramite molti processori) su computer altrui, accessibili in rete  per fruire di questo servizio, l’utente dovrà ovviamente pagare – ma solo in base al consumo effettivo delle risorse richieste 21 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Cloud computing Il cloud computing nasce da una vecchia idea  il computing come una utility – come l’energia elettrica o il gas  disponibilità illimitata di risorse – che possono essere usate senza la necessità di doverle gestire  da pagare a consumo – solo per quanto viene utilizzato  senza costi iniziali 22 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo Esempio – Data center per il cloud computing Il data center Microsoft a Chicago  un data center per il cloud basato su container – 112 container, 1800-2500 server per container, dunque oltre 200K server, 65000 m2 (circa 10 campi di calcio) 23 Storia e evoluzione dei sistemi di calcolo Fondamenti di informatica: Oggetti e Java Luca Cabibbo