Storia e evoluzione dei sistemi di calcolo - Luca Cabibbo

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