COMPUTER = CALCOLATORE
NON
ALGORITMI
E MACCHINA
DI
VON NEUMANN
CERVELLO ELETTRONICO
CERVELLO:
Capacità decisionali
CALCOLATORE:
• il concetto di Algoritmo
Incapacità di effettuare scelte autonome di
fronte a situazioni impreviste
• la macchina di Von Neumann
ESEMPIO 1:
¾ Il calcolatore è un dispositivo capace di:
9immagazzinare una grossa quantità di informazioni
9eseguire su di esse, in modo automatico, una sequenza
di operazioni prestabilite
¾I problemi che si prestano particolarmente ad essere
risolti o gestiti con un calcolatore sono
9problemi di natura ripetitiva
elaborazione di
tipo ripetitivo
COMPUTER
assegni
bancari
(Lettore
di
assegni)
INPUT
Informazioni sui
conti correnti
memorizzati nel
computer
Elaborazione dei
dati contenuti negli
assegni
OUTPUT
estratto conto
9problemi che necessitano di un controllo continuo
nella loro evoluzione
Depositi bancari
1
ESEMPIO 2:
controllo di un processo in continua evoluzione
¾Il calcolatore è inoltre un valido strumento di aiuto nella
velocità, distanze, etc.
misurate
con strumenti di bordo
I
N
P
U T
9documentazione automatica
Autopilota
di un aereo
9scrittura di testi
Modifica rotta: flap,
accelerazione, etc.
Informazioni
sui piani di
volo
Confronto tra
piano di volo
attuale e previsto
U
O
T
P
T
U
RISOLUZIONE DI UN PROBLEMA
MEDIANTE CALCOLATORE
ANALISI ⇔ precisa formulazione del problema
sviluppo di un ALGORITMO ⇔
procedimento non ambiguo, formato da un
numero finito di azioni sufficientemente semplici
che risolva il problema dato
PROGRAMMAZIONE ⇔ descrizione dell’algoritmo
mediante un insieme di frasi (Programma) appartenenti
ad un linguaggio comprensibile al calcolatore
(Linguaggio di programmazione)
9gestione delle imprese (programmazione delle
vendite e della produzione, gestione dei flussi finanziari,
analisi di dati economici,…)
9 ausilio alla didattica
Un algoritmo viene descritto mediante un
LINGUAGGIO
LINGUAGGIO
• Flow chart (diagramma di flusso)
• Tipo Pascal, tipo Matlab,…
•………………………………………….
•………………………………………….
ELABORAZIONE ⇔ esecuzione del programma
2
Convenzioni linguistiche del
Convenzioni linguistiche del
FLOW CHART
CHART
FLOW
FLOW CHART
CHART
FLOW
inizio
F
V
condizione
fine
denota la fine dell’algoritmo
Esempio:
Sostituzione della ruota di un auto
denota una generica istruzione
istruzione
denota l’inizio dell’algoritmo
indica che l’esecuzione dipende
dal valore della condizione (vero o falso)
Flow chart dell’algoritmo per il cambio della ruota
inizio
Solleva l’auto
istruzioni
Solleva l’auto
Svita i bulloni
Togli la ruota
Svita i bulloni
Togli la ruota
Metti la ruota di scorta
Metti la ruota di scorta
Avvita i bulloni
Abbassa l’auto
Avvita i bulloni
Abbassa l’auto
fine
3
La non ambiguità di una istruzione dipende dalle
L’istruzione
Avvita i bulloni
CARATTERISTICHE
DELL’ESECUTORE
L’istruzione
può essere sostituita da una sequenza
di istruzioni più semplici
Avvita un bullone
Avvita un bullone
Avvita i bulloni
Avvita un bullone
è sufficientemente specificata?
Tale sequenza si può rappresentare
con la struttura del tipo:
Avvita un bullone
SOLUZIONE
Avvita un bullone
Avvita un bullone
Tutti avvitati?
F
V
ma in questa forma
il ciclo è senza fine!
Struttura di
TIPO ITERATIVO
4
Algoritmo per il cambio della ruota
inizio
V
La definizione di algoritmo
Ruota di scorta bucata?
Un algoritmo è un procedimento per la risoluzione di una
classe di problemi, costituito da un insieme finito di
direttive non ambigue che specificano una sequenza finita
di operazioni da eseguire su un insieme finito di dati
F
Solleva l’auto
svita un bullone
F
Tutti svitati?
DATI DEL PROBLEMA
V
Chiama il
ALGORITMO
RISULTATO
Togli la ruota
L’etimologia del termine
meccanico
Metti la ruota di scorta
Il termine deriva da “Al Khuwarizmi”,
nome del matematico persiano del IX sec.
che descrisse gli algoritmi per
le operazioni aritmetiche sui numeri decimali
Avvita un bullone
Tutti avvitati?
F
V
Abbassa l’auto
fine
Algoritmo per la somma di un insieme di numeri
¾ PROBLEMA: somma di 5 numeri
¾ dati del problema: 5, 7, 10,-2,-1
INIZIO
¾ istruzioni
• poni il totale a 0
Azzera il
totale
• somma il primo numero al totale
• somma il secondo numero al totale
ci sono
altri numeri
• somma il terzo numero al totale
• somma il quarto numero al totale
0
5
5
7
12
10
22
-2
20
stampa
il totale
V
• somma il quinto numero al totale
NUMERO
TOTALE
F
leggi un
numero
-1
19
FINE
somma il
numero
al totale
5
Un esecutore di algoritmi
deve essere quindi in grado di:
Il concetto di
NON
NON AMBIGUITA’
AMBIGUITA’
impone che siano note a priori le capacità logiche ed
operative dell’esecutore dell’algoritmo
• immagazzinare dati (di input intermedi e di output) ed
istruzioni
• effettuare operazioni aritmetiche e logiche su tali dati
INOLTRE
• controllare il flusso delle operazioni
un algoritmo definisce non solo il flusso delle operazioni
da compiere, ma anche i dati su cui tali operazioni vanno
eseguite
Schema uomo
Dati e istruzioni
controllo
Componenti
Componenti fondamentali
fondamentali di
di un
un calcolatore:
calcolatore:
• Memoria
• unità di controllo
Schema macchina di Von Neumann
• unità di input e output
MEMORIA
unità di
input
CPU
• unità logico-aritmetica
unità di
output
unità di
controllo
unità
logicoaritmetica
6
MEMORIA
è il supporto fisico
che permette di immagazzinare
informazioni (dati e istruzioni)
Ogni locazione è costituita da una
sequenza finita di componenti elementari
(binary digit, espressione abbreviata con il termine BIT)
in ciascuno dei quali può essere rappresentata
una cifra binaria (0 oppure 1)
Esempio: locazione di 8 bit
La memoria è organizzata come
una lista sequenziale di
1
1
1
0
1
1
1
0
LOCAZIONI
LOCAZIONI (O
(O CELLE)
CELLE)
BIT
LOCAZIONE
Le locazioni sono univocamente
individuate in memoria da
INDIRIZZI
INDIRIZZI
Schema della memoria
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0010
0011
0100
0101
0110
LOCAZIONE
=
minima quantità di bit
indirizzabile
In anni recenti molti costruttori
di calcolatori hanno standardizzato
locazioni a 8 bit
(1 byte = 8 bit)
0111
7
Operazioni
Operazioni sulla
sulla memoria
memoria
Le locazioni possono essere raggruppate in
parole (word), o voci
Parola
=
minimo numero di bit
necessari per memorizzare una
informazione (dato o una istruzione)
0……..1
(prelevare il contenuto di una o più locazioni di memoria)
scrittura
scrittura
Esempi:
1)
lettura
lettura
locazione
(definire il contenuto di una o più locazioni di memoria)
parola
2) 0…….1 0…….1 0…….1 0……1
locazione
parola
Parametri
Parametri della
della memoria
memoria
UNITÀ DI CONTROLLO (CU)
N:
N:capacità
capacità (numero di bit)
generalmente misurata in potenze del byte:
Kbyte = 210 byte = 1024 byte ~ 103 byte
Mbyte = 210 Kbyte = 1024 Kbyte ~ 106 byte
Gbyte = 210 Mbyte = 1024 Mbyte ~ 109 byte
Tbyte = 210 Gbyte = 1024 Gbyte ~ 1012 byte
Pbyte = 210 Tbyte = 1024 Tbyte ~ 1015 byte
W:
W:ampiezza
ampiezza della
della voce
voce
(generalmente misurata in bit)
16 bit, 32 bit, 64 bit
C:
C:tempo
tempo di
di accesso
accesso
(tempo per prelevare un’informazione)
è di solito misurato in nanosecondi:
1 ns = 10-9 sec.
Il costo della memoria è proporzionale a: WN
C
è il coordinatore di tutte le
attività del calcolatore
• preleva dalla memoria un’istruzione
• la interpreta
•provvede all’esecuzione
• determina la successiva istruzione da eseguire
Ciclo fetch-decode-execute
8
UNITÀ DI CONTROLLO
può essere vista come:
• unità funzionale che istruisce e guida le altre
componenti del sistema nell’esecuzione delle
loro attività
• dispositivo di temporizzazione e sequenzializzazione
di tutte le attività del sistema
è il punto da cui in sequenza partono le
direttive per tutto il sistema
Unità logico-aritmetica
è l’esecutore delle operazioni sui dati,
sia aritmetiche, sia di confronto
gli operandi sono memorizzati nei registri
dalla memoria
registro
+*/-
alla memoria
registro
registro
Unità logico-aritmetica
Unità di controllo
+
Unità logico-aritmetica
=
CPU
(Central Processing Unit)
Caratteristica della CPU:
velocità operativa
(tempo di esecuzione di una istruzione)
per sincronizzare le attività di un sistema si utilizza
un circuito elementare (clock)
che emette degli impulsi a precisi intervalli di tempo
l’intervallo tra i limiti di 2 impulsi consecutivi è chiamato
TEMPO DI CICLO DI CLOCK
ciclo di clock = 1 ns ⇔ frequenza 1 GHz
(1 GHz = 1000 MHz = 109 Hz)
La tecnologia attuale consente di produrre
processori fino a 4 Ghz (0,25 ns)
valori tipici sono 1,3 GHz, 1,5 GHz, 1,8 GHz,
2,8 GHz, 3,0 GHz, 3,2 GHz, 3,8 GHz
9
Evoluzione: processori multicore
misure
misure della
della velocità
velocità operativa
operativa
• MIPS
Milioni di Istruzioni Per Secondo
• MFLOPS
Milioni di operazioni FLOating-Point al Secondo
in generale un’istruzione viene eseguita in un ciclo di clock
ad esempio un processore a 1,2 GHz
ha una velocità operativa di 1200 MIPS
Unità di Input/Output
Testo
non
presente
OUTPUT
interfaccia del calcolatore
con il mondo esterno
INPUT
• consente l’interazione con l’uomo (video, tastiera, stampante,
mouse,….)
• consente l’accesso alle reti telematiche
(Ethernet,Internet,….)
Informazioni sui
libri della biblioteca
e sui loro argomenti
Automazione di biblioteche
10
Documento in Microsoft Word
Foglio Microsoft Excel
Unità di controllo
è il coordinatore di tutte le
attività del calcolatore
• preleva dalla memoria un’istruzione
• la interpreta
•invia all’unità preposta una sequenza di comandi necessari
per l’esecuzione dell’istruzione
• trasferisce i dati dalla memoria a speciali aree di memoria
presenti nell’unità logico-aritmetica (registri)
• determina la successiva istruzione da eseguire
11