Elementi di Informatica Facoltà di Economia · 2016. 10. 10. · Lezione: 07/10/16 Docente: Summa...
Transcript of Elementi di Informatica Facoltà di Economia · 2016. 10. 10. · Lezione: 07/10/16 Docente: Summa...
Elementi di
Informatica
Facoltà di Economia Introduzione al corso
Lezione: 07/10/16
Docente: Summa Donato
dove reperire le informazioni:
http://economia.unibas.it/economia/
1
Un po’ di Bibliografia
• Informatica una panoramica Generale Brookshear – Pearson Addison Wesley • Applicazioni aziendali con EXCEL (Borazzo,Candiotto) APOGEO
2
Programma del corso
- Introduzione
- Memorizzazione dei dati
- Conversione dei dati
- Architettura dei calcolatori
- Sistemi operativi
- Algoritmi
- Reti
- Software applicativo: Excel
3
Sistema Operativo
CPU-Elaboratore-Hardware
Linguaggi di Programmazione-Software
Conoscenza dell’informatica: diversi livelli
Un Calcolatore è un insieme di interruttori
Sistema Operativo: è solo un organizzatore dei dispositivi di I/O
Linguaggio di Programmazione: Insieme delle istruzioni da dare in pasto ad
una macchina
Introduzione
4
L’ informatica è la disciplina che cerca di dare un
fondamento scientifico ad argomenti come la
progettazione di computer, programmazione,
elaborazione delle informazioni e soluzioni
algoritmiche di processi
Informazione Automatica
Introduzione
5
• Generazione Zero: Meccanici
• I Generazione: Valvole Elettroniche
• II Generazione: Transistor
• III Generazione: Circuiti Integrati
• IV Generazione: Circuiti Integrati VLSI
Origini delle macchine
calcolatrici
Introduzione
6
Abaco
Uno dei primi dispositivi di calcolo: Origine
Greco-Romana
Macchine ad Ingranaggi: Leibniz, Pascal
(1600)
Macchine create per eseguire operazioni di
addizione Macchine analitica (Babbage 1850)
Fu progettata per leggere istruzioni sotto forma di fori su schede di
cartone per lavorare tessuti su telai
• Prima macchina programmabile
• Primo programmatore: (Ada Byron)
I progettisti della macchina di Babbage anticiparono davvero la moderna
progettazione dei computer. Se il livello tecnologico di allora avesse
permesso di produrre le sue apparecchiature in modo economicamente
conveniente, e se le esigenze delle amministrazioni fossero state della
stessa portata di quelle di oggi, tale macchina avrebbe portato la
rivoluzione informatica già nell’800.
Introduzione
7
8
Il suo progetto era basato sul progetto di telaio
il quale, facendo uso di diverse schede perforate,
determinava le diverse trame di tessuto da
produrre. Babbage lo adattò in modo che
generasse operazioni matematiche.
La macchina analitica, considerata il primo
computer al mondo, era costituita da:
Dispositivi di Ingresso basati sulle schede
perforate analoghi a quelli di Jacquard;
Un Processore Automatico con il compito di
eseguire calcoli numerici;
Un’Unità di Controllo che verificava venissero
svolti i compiti in modo corretto;
Un Meccanismo di Uscita dei calcoli svolti;
Una Memoria che conservava i numeri in attesa
che questi venissero “processati”.
9
Il primo grande computer elettromeccanico e' quello di Howard Aiken (1900-1973) che nel 1937, ad Harward, insieme ad IBM, riprende in esame i lavori di Babbage e cerca di utilizzare i rele' per realizzare un computer del tipo di quello di Babbage. Nel 1944 e' operativo Mark I, con 3000 rele', parole di 23 cifre decimali, capace di 3 operazioni al secondo
10
ENIAC (Elecronic Numerical Integrator and Computer) costruita da Mauchly ed Eckert all'Universita' della Pensilvania. La macchina, sviluppata fra il 1943 ed il 1946, fu finanziata dai militari, ed era intesa a calcolare tabelle di puntamento per l'artiglieria, che fino ad allora erano calcolate a mano, con un lavoro lungo ed estenuante. ENIAC era costruita con 18000 valvole termoioniche, 1500 rele' , consumava attorno ai 150 KW, l'apparecchiatura pesava 30 tonnellate , ed occupava un salone di 30 metri, per un'altezza di 2.5 m. Si programmava predisponendo, a mano, connessioni su pannelli intercambiabili, che avevano qualcosa come 6000 interruttori, cavi e prese.
Nel 1948 venne inventato il
transistor (Brattain e shockley)
che sostituirà le valvole
Generazione II Transistor
Su una piastrina 4 × 3 mm Faggin, Hoff
e Mazer riuscirono, nel 1971, ad inserire
2.250 transistor, che formavano il cuore
di un intero calcolatore in grado di
elaborare in parallelo 4 bit
Generazione III I circuiti
Integrati
11
12
Nel 1971 l'Intel produce la prima CPU su un singolo CIP, il 4004, con 2300 transistor. Era una CPU a 4 bit, prodotta su commessa della Busicom, ditta giapponese , l'importanza di questa linea di sviluppo non fu compresa subito e l'Intel riusci' a ricomperare il progetto dalla Busicom qualche anno piu' tardi.
Nel 1972 l'Intel produce l'8008, una CPU ad 8 bit, con un limite di memoria di 16 K, questo limite viene superato nel 1974 con l'8080 (64 K di RAM). nel 1978 viene prodotto l'8086, che ha un bus a 16 bit, 8088, con un piu' economico bus ad 8 bit viene utilizzato dall'IBM per i primi personal computers.
13
La tendenza a costruire circuiti sempre piu' piccoli e l'integrazione di molte componenti sulla stessa piastrina di silicio porta ad un crollo dei costi, ad una aumento delle prestazioni, e ad un'enorme espansione del mercato. Vengono prodotti cip di silicio che integrano migliaia, poi decine, centinaia di migliaia o milioni di componenti (VLSI , very large scale integration ).
Generazione IV
14
Il mercato delle CPU vede protagonista l'Intel, tallonata da
AMD e, per un certo periodo , da Cyrix,
Importante e' l'aumento delle prestazioni che si ha negli anni
90, col 486 e soprattutto col Pentium, che ha una architettura
più complessa delle CPU precedenti, e maggiori performance.
Le performance delle cpu Intel migliorano fino a divenire
paragonabili a quelle dei grandi calcolatori, ma ad una
frazione del costo.
Negli anni successivi si assiste ad un ulteriore
miniaturizzazione delle componenti, e ad un aumento del
clock dei processori, aumento che si arresta nel 2005, poco
sotto i 4 Ghz, per problemi termici ed elettrici. Per aumentare
le prestazioni si procede quindi a progettare macchine con più
CPU, ed integrati che contengono più di una CPU. Si assiste
anche ad un grande aumento di prestazioni delle memorie e
divengono comuni dischi di grande capacità (centinaia di
Gbyte).
15
anno modello Clock numero di RAM Note
MHz transistors indirizzabile
1971 4004 0.108 2.300 640 KB cpu a 4 bits
1972 8008 0.108 3.500 16 KB cpu ad 8 bits
1974 8080 2 6.000 64 KB cpu general purpose
1978 8086 5-10 29.000 1 MB cpu a 16 bits
1979 8088 5-8 29.000 1 MB usato su PC IBM
1982 80286 8-12 134.000 16 MB con protezione memoria
1985 80386 16-33 275.000 4 GB cpu a 32 bits
1989 80486 25-100 1.2 M 4 GB 8 KB cache on cip
1993 Pentium 60-233 3.1 M 4 GB 2 pipeline (superscalare), MMX
1995 Pentium pro (P6) 150-200 5.5 M 4 GB 2 livelli cache, no MMX,
1997 Pentium II 233-400 7.5 M 4 GB 2 livelli cache, MMX, slot 1
1999 Pentium III 500-1.13 Ghz 9.5-28 M 4 GB bus >66 Mhz
2000 Pentium IV 1-2.2 Ghz (2002) 3.8 Ghz nel 2004
42 M 4 GB
16
La legge di Moore (1965)
Il numero di transistor per chip
raddoppia ogni 18 mesi
• Circa un aumento del 60%
all’anno
• Conseguenze:
– Aumento della capacità dei
chip di memoria
– Aumento della capacità delle
CPU La legge di Moore è tratta da un'osservazione empirica di
Gordon Moore cofondatore di Intel: nel 1965 scrisse infatti
un articolo su una rivista specializzata nel quale illustrava
come nel periodo 1959 -1965 il numero di componenti
elettronici transistor che formano un chip fosse raddoppiato
ogni anno.
Moore, grazie alle sue supposizioni poi diventate leggi è
stato dunque tra coloro che hanno dato il via alla corsa
all'evoluzione dei processori.
17
Legge di Moore per le CPU
• Più transistor in una CPU significano:
– Eseguire direttamente istruzioni più complesse
– Maggiore memoria sul chip (cache)
– Maggiore parallelismo interno
• Altro fattore decisivo è la frequenza di funzionamento
Legge di Nathan
• Le dimensioni del software sono
sempre cresciute col calare dei costi e con
l’aumentare della memoria Disponibile
• Il Circolo Virtuoso
– Costi più bassi e prodotti migliori
– Aumento dei volumi di mercato
– Fattori di scala nella produzione
– Costi più bassi …...
18
Questa legge è diventata il metro di misura e l'obiettivo di tutte le aziende
che operano nel settore, non solo la Intel. Un esempio di come i
microprocessori in commercio seguano la legge di Moore è il seguente: nel
maggio del 1997 Intel lancia il processore Pentium II con le seguenti
caratteristiche: Frequenza: 300 MHz Numero di transistor: 7,5 milioni
Dopo tre anni e mezzo, ovvero nel novembre del 2000, mette in vendita il
Pentium 4 con le seguenti caratteristiche: Frequenza’ 1,5 GHz Numero di
transistor': 42 milioni
Come si può vedere, in 42 mesi le prestazioni dei processori sono circa
quintuplicate, proprio come prevedeva la legge. Infatti, a ben vedere, la
frequenza del processore è passata da 300 MHz a 1,5 GHz, esattamente
cinque volte quella del Pentium II. Ad ulteriore conferma c'è anche il
numero di transistor utilizzati per costruire il processore, un processore
Pentium II è formato da 7,5 milioni di transistor, se moltiplichiamo per
cinque quel valore otteniamo che il processore dovrebbe essere formato da
circa 37,5 milioni di transistor, il Pentium IV è formato da 42 milioni, il che
vuol dire che non solo Intel ha rispettato la legge, ma addirittura è riuscita a
fare meglio.
Questa tecnologia ha una fine??
19
Personal Computer
• Sappiamo chi è
• Microprocessore a 32/64 bit
• Memoria di 1-2 Gbyte
• Capacità dei dischi dell’ordine dei Tbyte
• Per il 95% basato sulla piattaforma
Intel
Server
• Su rete locale o Web server
• Memorie fino di diversi Gbyte
• Capacità dei dischi dell’ordine dei Tbyte
• Gestione di rete efficiente
Mainframe
• Diretti discendenti della serie IBM/360
• Gestione efficiente dell’I/O
• Periferie a dischi di molti Tbyte
• Centinaia di terminali connessi
• Costi di parecchi miliardi
• Rapidità
• Precisione
• Capacità di esecuzione di lavori ripetitivi
• Capacità di gestione di grandi quantità di dati
• Capacità di integrare dati provenienti da fonti diverse
• Possibilità di memorizzare dati per lunghi periodi di tempo
Introduzione
Vantaggi del computer
20
Limiti (svantaggi) del computer
• Mancanza di intelligenza autonoma
• Mancanza di creatività
• Difficoltà ad affrontare problemi nuovi
• Difficoltà nei lavori non ripetitivi
• Difficoltà a gestire informazioni non strutturate
• Difficoltà nell'interpretare un discorso
• Possibilità di guasti
Introduzione
21
Un algoritmo può essere informalmente definito come una sequenza
finita di “mosse” che risolve in un tempo finito un determinato
problema. L'esecuzione delle azioni nell'ordine specificato
dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i
risultati che rappresentano la
risoluzione del problema.
Introduzione
22
I linguaggi di programmazione possono essere suddivisi in linguaggi a basso e ad
alto livello. Un esempio di linguaggio a basso livello è il linguaggio macchina, che
fornisce appunto le istruzioni a Basso livello (cioè direttamente eseguibili
dall’elaboratore) per la risoluzione di un problema. In linguaggio macchine è per
esempio possibile specificare il caricamento di dati (variabili) in locazioni di
memoria ben precise (ad esempio i registri della CPU). I linguaggi ad alto livello,
come il C/C++, Java, Pascal, Basic e altri, sono molto più simili al linguaggio
naturale. Le Istruzioni sono quindi molto più intuitive per il programmatore. In
ogni caso, l’esecuzione di un programma scritto in un linguaggio ad alto livello è
subordinata a una fase in cui le istruzioni del linguaggio sono tradotte in
istruzioni a basso livello (compilazione), direttamente eseguibili dal calcolatore.
23
La rappresentazione di un algoritmo può essere espressa graficamente
tramite diagrammi di flusso (flow chart). È uno metodi più comuni usati
per la rappresentazione di algoritmi, specialmente nel caso di algoritmi
brevi. Un diagramma di flusso, detto anche diagramma a blocchi, si
presenta come
un insieme di figure geometriche collegate da frecce.
Tutti i diagrammi a blocchi cominciano con un’ellisse che contiene la
parola inizio: I dati in ingresso sono i dati noti del problema, quelli che
devono essere elaborati per arrivare alla soluzione: Le operazioni da
svolgere sui dati sono racchiuse in rettangoli:
if
Operazioni
I/O
Start
End
yes no
24
La realizzazione di programmi, spesso complessi, consente una varietà di possibili
applicazioni, tra cui: Word Processing (Memorizzare, elaborare testi), Basi di Dati
(Memorizzare grossi archivi di dati, recupero veloce, produrre informazioni
globali), Accesso Remoto (Trasmissione e recupero di informazioni), Calcolo
(Risolvere problemi matematici), Simulazioni (Rappresentare e elaborare
informazioni che simulano l’ambiente reale), Progettazione ingegneristica,
Rappresentazione
scientifica dei dati.
Tuttavia, esistono problemi che non possono essere risolti tramite un calcolatore
elettronico per diversi motivi, tra cui: la risoluzione del problema non esiste, la
risoluzione del problema impiegherebbe un tempo di calcolo eccessivo (anche
infinito), la soluzione del problema è “soggettiva”.
25
•Per generare programmi è necessario avere o
generare algoritmi efficienti.
•Non bisogna confondere il programma (PC) con l’algoritmo
(sequenza di passi).
•Pertanto un programma è nient’altro che un algoritmo dove
l’esecutore è il computer stesso.
Sviluppare software significa generare programmi che siano
corretti ed efficienti.
Corretto: validazione del risultato.
Efficiente: tempo, memoria (in termini di costo)
26