Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ELABORATORI
-È la scienza dell'informazione?
Definizione troppo generale o generica.
Anche l'attività giornalistica è scienza dell'informazione.
2
DIVENTA CENTRALE NELL’INFORMATICA IL CONCETTO DI ALGORITMO.
3
Elaboratore digitale: è una macchina usata per
Collezionare
Analizzare
Elaborare
precisamente e velocemente una vasta quantità di
informazioni.
È in grado di eseguire ad altissima velocità sequenze di
operazioni lunghe, complesse e ripetitive.
Informazioni
4
Il calcolatore realizza ogni elaborazione richiesta sui dati
per reazione a una precisa successione di istruzioni detta
PROGRAMMA.
algoritmo
Linguaggio di programmazione
programma
5
dati risultati
calcolatore
Tecniche di programmazione:
insieme dei criteri da seguire per progettare e
costruire un programma sfruttando al meglio le
risorse di un elaboratore.
6
Un sistema di elaborazione dati è costituito da:
( I° livello di decomposizione di un sistema
informatico )
7
gestione delle periferiche, nucleo di caricamento del
sistema operativo - bootstrap-…).
8
I° livello di decomposizione di un sistema
Informativo:
SW applicativo
SW di base
(Sistema operativo)
firmware
Firmware
HW
9
Hardware
10
CPU, memoria e dispositivi sono realizzati
mediante TECNOLOGIA DIGITALE.
00010010001111…
11
SOFTWARE
Programmi
applicativi
Ambiente di
programmazione
Sistema operativo Software di
comunicazione
Firmware
Hardware
12
SISTEMA OPERATIVO
Insieme di programmi che operano direttamente al di sopra
di Hardware e Firmware e consentono all'utente l'utilizzo di
tutte le funzionalità dell'elaboratore ( generalmente venduto
dal costruttore dell'elaboratore ).
13
Il S.O traduce le richieste dell'utente in opportune sequenze
di impulsi da trasmettere all'HW e viceversa:
Comando 01010101…
Utente S.O. HW
Risultato 01010101…
14
Ambiente di programmazione: insieme di programmi che
facilitano la scrittura di programmi applicativi e la verifica
di correttezza.
15
PROGRAMMI APPLICATIVI
16
SISTEMI INFORMATICI O DI CALCOLO
Calcolatori piccoli
Calcolatori medi
Calcolatori grandi
Calcolatori piccoli
(monoutenza, potenza di elaborazione medio bassa).
17
Calcolatori medi: buona potenza di elaborazione, memorie
RAM e cache di medio alte dimensioni predisposti per la
multiutenza.
18
La capacità di elaborazione di un sistema informatico può crescere aumentando
la potenza di un singolo elaboratore , ma la crescita della potenza di
elaborazione si può ottenere anche connettendo insieme vari calcolatori in una
rete.
Stampante Disk
Server
Bus di rete
19
Reti geografiche (WAN): Collegano elaboratori medio grandi che
sono a grande distanza tra loro. Servono per attivare e controllare
l'esecuzione di programmi remoti (applicazioni distribuite).
Trasmissione più lenta
Rete geografica
Terminali
remoti
Mini
HOST Terminali
HOST locali
PC
HOST
Terminali
locali
Terminali
remoti
Rete locale
20
ARCHITETTURA DI UN CALCOLATORE
21
I componenti logici di un elaboratore sono in
corrispondenza biunivoca con le fasi di risoluzione
di un problema.
Acquisizione dati
Elaborazione
Visualizzazione
dei risultati
22
FUNZIONAMENTO DELLA MACCHINA DI
VON NEUMANN
23
Unità di ingresso/uscita: Preposte alla
comunicazione con il mondo esterno (mezzi
periferici).
Mediante i mezzi periferici di ingresso, l'utente
trasmette al calcolatore i dati da elaborare e le
istruzioni che determinano come operare su di essi,
che a questo livello vengono recepite come dati.
Tastiera (Keyboard): più semplice dispositivo di
input.
Altre unità contraddistinte da funzioni distinte
oltre che da velocità distinte: mouse, lettori di
dischi, nastri, convertitori analogici digitali,
tavolette digitalizzatrici, scanner…
I mezzi periferici di uscita servono a visualizzare i
dati elaborati (risultati) in forma in forma
permanente (hard copy) o volatile (soft copy).
Hard copy: stampante, dischi, nastri , plotter,…
Softcopy: monitor (scrolling, cursore)
24
Tastiera: serie di tasti disposti in righe e colonne.
Alla chiusura del contatto elettrico del tasto
(pressione del tasto) si ottengono direttamente i
codici binari che rappresentano:
Lettere
Cifre
Caratteri speciali (barra spaziatrice, segni di
punteggiatura...)
Sono presenti:
Tasti funzione
Tasti di direzione
ALT + CTRL + CANC, INVIO
Tastierino numerico
TERMINALE:
- modo teletype: ciascun carattere immesso mediante la
tastiera viene immediatamente trasmesso al calcolatore;-
- modo a blocchi: una intera linea di testo (terminata con il
carattere INVIO) viene immessa in una memoria locale
(buffer) e poi inviata in blocco al calcolatore; pertanto è
possibile correggere la linea e poi inviarla in blocco.
25
- MOUSE, TRACKBALL
Dispositivi di puntamento.
26
MONITOR: suddiviso in zone (finestre) ciascuna
associata ad una specifica elaborazione. Si può
allargarle, restringerle, spostarle. Una di esse è la
“finestra corrente” (quella su cui compaiono i caratteri
digitati da tastiera).
Legato al monitor c'è una scheda grafica che traduce
le informazioni da visualizzare in informazioni
grafiche.
28
STAMPANTI: ad aghi, a getto d'inchiostro,
laser…
29
Modem (Modulatore/Demodulatore): trasforma
segnali digitali in segnali analogici per il
trasferimento attraverso via telefonica ad altri
elaboratori.
30
MEMORIA (Primaria o Centrale): è un deposito in cui
sono contenute in forma indistinta tutte le informazioni per
l'unità logico aritmetica (dati) e l'unità di controllo
(istruzioni).
Conserva le informazioni fornendone una copia se richiesta.
31
ROM (Read only Memory)
MEMORIA PRINCIPALE
INIZIO FINE
34
PER CONVENZIONE SI USA RAPPRESENTARE IL
CONTENUTO DI UN BYTE E IL SUO INDIRIZZO IN
ESADECIMALE.
35
MEMORIA CENTRALE (INDIRIZZAMENTO)
MDR
k bit h bit
36
Tutto avviene sotto il controllo dell'unità di elaborazione che
carica il registro MAR e ordina il trasferimento di MDR in
memoria e viceversa attraverso il BUS.
37
MEMORIA SECONDARIA (di massa )
38
NASTRI MAGNETICI
39
DISCHI MAGNETICI
Traccia 0
Traccia 100
Traccia 200
Settore
40
DISCHI
Operazioni di I/O: comportano uno spostamento della testina (seek) sulla
traccia richiesta, una rotazione fino a che il settore arriva sotto la testina e
un tempo di trasferimento dati (solitamente eseguito dal controller, che è
un processore dedicato, senza interferire con la CPU attraverso DMA,
direct memory access).
DISCHI OTTICI
Dischi simili ai Compact Disk (CD) con lo stesso funzionamento; possono
essere di tre tipi:
eraseable (scrivibili dall’utente)
Read-Only (a sola lettura o normali CD-ROM)
WORM (Write Once Read Many) (possono essere scritti una sola volta)
Hanno grande capienza (fino al Gigabyte), piccole dimensioni, possibilità
di memorizzare immagini e/o suoni e sono rimovibili. Sono più lenti di un
HD.
41
BUS DI SISTEMA
42
Esempio.
La CPU deve:
- inserire l’indirizzo della cella di memoria desiderata in MAR;
esso viene comunicato alla memoria tramite il bus indirizzi;
- comunicare il codice di una operazione di LOAD alla memoria
attraverso il bus comandi.
La memoria può:
- leggere il contenuto della cella selezionata e inviarlo attraverso
il bus dati a MDR;
- inviare sul bus comandi alla CPU l’informazione che
l’operazione è completata.
La CPU deve:
- caricare in MAR l’indirizzo della cella di memoria interessata e
inviarlo attraverso il bus indirizzi alla memoria;
- caricare il dato in MDR, avviandolo verso la memoria
attraverso il bus dati;
- inviare il codice dell’operazione di STORE alla memoria
mediante il bus comandi.
La memoria può:
- scrivere il dato all’indirizzo specificato;
- inviare un segnale alla CPU sul bus comandi di completamento
dell’operazione.
43
Esistono vari tipi di Bus dati che differiscono oltre che per la
lunghezza della parola trattata anche per la PORTATA (numero
di bit trasferiti nell'unità di tempo):
Bus ISA (Industry Standard Architecture) 16 bit, bassa portata
Bus EISA (Extended ISA), MCA (Micro Channel
Architecture), bus VESA
Bus PCI (Peripherical Central Interface) 64 bit
44
INTERFACCE DI INGRESSO / USCITA
45
UNITA’ DI ELABORAZIONE (CPU)
PC RS
IR Acc.A
ALU
Acc.B
RINT
CLOC
K UC
MDR
MAR
46
RS (registro di stato):
Bit carry: indica la presenza di un riporto (serve per confronti)
Bit zero: indica la presenza di un valore nullo in un particolare
Registro acc. (A)
Bit segno: riporta il segno del risultato di una operazione
Bit overflow: consente di rilevare l'overflow quando due
operandi dello stesso segno sommati danno luogo a un risultato
di segno contrario.
47
Le istruzioni vengono introdotte come i dati mediante
una unità di ingresso in memoria, ove giacciono in forma
indistinta rispetto ai dati
Ogni istruzione contiene in campi di lunghezza prefissata
le seguenti informazioni:
codice operativo: codice corrispondente all'insieme di
impulsi che attivano il circuito associato a una
specifica funzione
indirizzo degli operandi e del risultato
indirizzo della prossima istruzione da eseguire
48
La lunghezza s in bit di una istruzione dipende dal numero di bit h
della parola (s=h, una istruzione in una parola, oppure s=2h, una
istruzione in due parole…). In generale s=m+r*n, ove m è il
numero di bit per il codice operativo, r è il numero di operandi e n
il numero di bit per la rappresentazione dell’informazione relativa
a dove reperire un operando.
49
MACCHINE A TRE INDIRIZZI
MACCHINE AD UN INDIRIZZO
50
Dal momento dell'avviamento della macchina fino allo
spegnimento , l'UC esegue in continuazione il ciclo di esecuzione
dell'istruzione:
UC carica nel registro istruzione IR il contenuto della locazione
indicata da PC.
PC viene incrementato per puntare alla nuova istruzione
Decodifica (separazione codice operativo da informazioni su
operandi)
Reperimento operandi che vengono portati dalla memoria
all'ingresso del circuito dell'ULA associato al codice operativo.
Attivazione del circuito
Memorizzazione del risultato
PC IR
INDIRIZZO ISTRUZIONE
MAR MDR
MEMORIA
ISTRUZIONE
ISTRUZIONE
51
ESECUZIONE DELLE ISTRUZIONI
Comporta 3 fasi:
ACQUISIZIONE della memoria dell'istruzione (FETCH)
DECODIFICA
ESECUZIONE
PC->MAR
Memoria (MAR)->MDR
MDR->IR
PC+1->PC
Decodifica
Si individua il codice operativo.
Esecuzione
Si recuperano dalla memoria gli eventuali operandi. Si attiva il circuito
preposto alla funzione associata al codice operativo. Si memorizza
l’eventuale risultato.
52
CLOCK (orologio di sistema)
Tipici valori: Pentium a 160 MHz, a 200 MHz, Alfa a 500 MHz…
53
Pur variando da elaboratore ad elaboratore, l'insieme delle
istruzioni attorno a cui si sviluppa un sistema di calcolo permette
sempre di effettuare le seguenti funzioni fondamentali:
Operazioni aritmetico logiche;
Controllo di condizioni logiche
Trasferimento da una locazione all'altra e scorrimento delle
cifre
Istruzioni di ingresso ed uscita
Arresto
54
Estensione della macchina di Von Neumann
55
COPROCESSORE: processore diverso dal processore principale
che esegue funzioni sussidiarie; per esempio coprocessore
matematico esegue più rapidamente i calcoli matematici con
numeri a virgola mobile (numeri finiti).
56
CONFRONTO TRA CALCOLATORI
57
LA DIREZIONE DEI COMPITI DEVE ESSERE FORMULATA
DALL'UTENTE MEDIANTE LA COSTRUZIONE DI UNA
LISTA DI ISTRUZIONI O "PROGRAMMA", INTRODOTTO
INSIEME AI DATI MEDIANTE UN DISPOSITIVO DI
INGRESSO IN MEMORIA ED IVI RESIDENTE
(PROGRAMMA MEMORIZZATO DI VON NEUMANN).
È necessario:
ricordarsi tutti i codici (che cambiano da macchina a macchina)
gestire gli indirizzi completamente, indirizzando alcune
locazioni alle costanti
conoscere l'architettura
Il programma è:
non "portabile" su altre macchine
poco leggibile (comprensibile)
difficilmente modificabile
alta probabilità di commettere errori e difficoltà nel
rintracciarli
58
ESEMPIO:
Supponiamo di avere una macchina in cui ogni istruzione è codificata
in una LOCAZIONE DI MEMORIA costituita da 16 bit, di cui 4
servono per il campo del codice operativo e 12 per il campo dell’indirizzo
di un solo operando, se è necessario specificarlo.
0000 LOADA
caricamento nel registro accumulatore A :(w) ->(A)
0001 LOADB
caricamento nel registro accumulatore B: (w)->(B)
0010 STOREA
memorizzazione del contenuto dell'accumulatore A all'indirizzo
specificato (A)->(w)
0011 STOREB
memorizzazione del contenuto dell'accumulatore A all'indirizzo
specificato (B)->(w)
0100 READ
lettura di un dato e memorizzazione nella locazione di indirizzo
w ; input ->(w)
0101 WRITE
stampa del contenuto della locazione di indirizzo w; (w)-
>output
0110 ADD:somma (A)+(B) ->(A)
0111 DIF: differenza (A)-(B) -> (A)
1000 MUL:prodotto (A)*(B)->(A)
1001 DIV: quoziente (A):(B)->(A); resto in (B)
1010 JUMP: salto incondizionato all’indirizzo w: (w)->(PC)
1011 JUMPZ: salto all’indirizzo w se (A) =0
1101 HALT:fine elaborazione
59
Ogni istruzione è eseguita mediante una serie di microistruzioni.
LOADA o LOADB
OP(IR)->MAR
Memoria (MAR)->MDR
MDR->A o B
STOREA o STOREB
A o B-> MDR
OP(IR)->MAR
MDR->memoria(MAR)
READ
RDP->MDR
OP(IR)->MAR
MDR ->memoria(MAR)
WRITE
OP(IR)->MAR
Memoria(MAR)->MDR
MDR->RDP
JUMP
OP(IR)->PC
JUMPZ
Se il bit zero di RS contiene 1, OP(IR)->PC
60
Il seguente programma legge i due dati I e F, ne esegue la somma e visualizza il
risultato.
Indirizzo di memoria Contenuto
CO |Operando
Ingresso di I e F 0-0000 READ I 0100 000000001000
1-0001 READ F 0100 000000001001
K<-I+F 2-0010 LOADA I 0000 000000001000
3-0011 LOADB F 0001 000000001001
4-0100 ADD 0110 000000000000
5-0101 STOREA K 0010 000000001010
Stampa K 6-0110 WRITE K 0101 000000001010
Stop 7-0111 HALT 1101 000000000000
Spazio memoria 8-1000 spazio riservato
Spazio memoria 9-1001 spazio riservato
10-1010 spazio riservato
61
MODALITA’ DI INDIRIZZAMENTO
Per codificare i 4 diversi modi di indirizzamento, possono essere usati i primi due bit
del campo operando:
0 indirizzamento diretto
01 indirizzamento indiretto
10 indirizzamento tramite registro indice
11 indirizzamento immediato
62
LINGUAGGIO SIMBOLICO (Assembler)
ASSEMBLATORE PROGRAMMA
FASE DI OGGETTO IN
ASSEMBLAGGIO
LINGUAGGIO
PROGRAMMA MACCHINA
SORGENTE IN
ASSEMBLER MEMORIA
PRINCIPALE
VANTAGGI
L'utente può conoscere i codici e programma in modo da non
conoscere gli indirizzi
facile modifica del programma e facile localizzazione degli errori
SVANTAGGI:
programma non portabile
corrispondenza 1-1 tra istruzioni macchina e Assembler
linguaggio orientato alla macchina
63
ESEMPIO:
READ I
READ F
LOADA I
LOADB F
ADD
STOREA K
WRITE K
HALT
I: int 1
F: int 1
K: int 1
Etichette:
I, F, K sono nomi di fantasia associati a locazioni di memoria che contengono i dati
su cui lavora il programma.
Dichiarative:
int: istruzione dichiarativa che avvisa l’assemblatore di lasciare una locazione vuota.
Modi di indirizzamento:
LOADA F diretto: l’operando è contenuto all’indirizzo F
LOADA @F indiretto: l’operando è contenuto all’indirizzo contenuto in F
LOADA F(I) tramite registro indice: l’operando è contenuto all’indirizzo dato dal
contenuto di F sommato al contenuto del registro indice
LOADA #F immediato: l’operando è il valore di F
64
ESEMPIO: SOMMA DI N NUMERI
READ N ; input N
LOADA #0 ; S<-0
STOREA S
LOADB #0 ; I<-0
STOREB I
CICLO: LOADA N
DIF ; N<- N-I
JUMPZ STAMPA
READ X
LOADA S
LOADB X
ADD ; S<-S+X
STOREA S
LOADA I
LOADB #1
ADD
STOREA I ;I<-I+1
LOADB I
JUMP CICLO
STAMPA: WRITE S
HALT
N: int 1
S: int 1
I: int 1
X: int 1
65
LINGUAGGI EVOLUTI
66
LINGUAGGI DI PROGRAMMAZIONE
67
LINGUAGGI EVOLUTI
LINGUAGGI INTERPRETATIVI
si dividono in: {
LINGUAGGI COMPILATIVI
68
LINGUAGGIO INTERPRETATIVO (BASIC...)
69
LINGUAGGI COMPILATIVI (FORTRAN,
COBOL,...)
70
PROCEDIMENTO DI INTERPRETAZIONE
INTERPRETATORE
PROGRAMMA (TRADUZIONE ED
SORGENTE ESECUZIONE) RISULTATI
SEGNALAZIONE
DATI
DI ERRORI
(SINTATTICI E/O
SEMANTICI)
PROCEDIMENTO DI COMPILAZIONE
EDITING PROGRAMMA
SORGENTE
COMPILATORE TRADUZIONE
PROGRAMMA
OGGETTO
LINKER COLLEGAMENTI
LOADER
PROGRAMMA
ESEGUIBILE
DATI ESECUZIONE
RISULTATI
71
SISTEMA OPERATIVO
72
RIFERIMENTI BIBLIOGRAFICI
73