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