Fondamenti Teorici e Programmazione: Modulo A: Elementi di

Sistemi di elaborazione
Architettura del calcolatore
Architettura di Von Neumann
I
L’architettura è ancora quella classica sviluppata da Von Neumann
nel 1947.
I
L’architettura di Von Neumann riflette le funzionalità richieste da un
elaboratore:
I
I
I
I
E. Occhiuto
memorizzare i dati e i programmi =⇒ memoria principale
i dati devono essere elaborati =⇒ unità di elaborazione (CPU)
comunicazione con l’esterno =⇒ unità di ingresso/uscita (periferiche)
le componenti del sistema devono scambiarsi informazioni =⇒ bus di
sistema
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 1
Sistemi di elaborazione
E. Occhiuto
–
Architettura del calcolatore
Fondamenti Teorici e Programmazione- 437AA –
pag. 2
Sistemi di elaborazione
Architettura del calcolatore
CPU (Central Processing Unit)
Funzionamento: Coordina le attività di tutte le componenti del
calcolatore, interpretando ed eseguendo le istruzioni del programma
corrente per:
I
I
I
il trasferimento dei dati,
la comunicazione con le periferiche
il calcolo vero e proprio
Struttura: Ha le seguenti 3 componenti principali:
I
I
I
E. Occhiuto
unità logico-aritmetica (ALU): effettua i calcoli
unità di controllo: coordinamento di tutte le operazioni
registri: celle di memoria ad accesso molto veloce, per memorizzare i
valori su cui effettuare il calcolo e gli indirizzi, delle locazioni di
memoria in cui sono memorizzati i dati e le istruzioni del programma in
esecuzione.
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 3
Sistemi di elaborazione
Architettura del calcolatore
Memoria centrale (o RAM)
h bit
0
1
2
..
.
2k − 1
I
I
I
I
I
è una sequenza di celle di memoria (dette parole), tutte della stessa
dimensione
ogni cella è costituita da una sequenza di bit
il numero h di bit di una cella di memoria (dimensione) dipende
dall’elaboratore, ed è un multiplo di 8: 8, 16, 32, 64
ogni cella di memoria è identificata in modo univoco dal suo indirizzo
il numero k di bit necessari per l’indirizzo dipende dal numero di celle
di memoria
k bit =⇒ 2k celle
E. Occhiuto
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 4
Sistemi di elaborazione
Architettura del calcolatore
Memoria centrale
Caratteristiche principali
I
è una memoria ad accesso casuale, ossia il tempo di accesso ad una
cella di memoria è indipendente dalla posizione della cella =⇒ viene
chiamata RAM (random access memory)
I
può essere sia letta che scritta
scrittura distruttiva – lettura non distruttiva
I
alta velocità di accesso
I
è volatile (si perde il contenuto quando si spegne il calcolatore)
Dimensione della memoria: misurata in byte (1 byte=8 bit)
Kilobyte
Megabyte
Gigabyte
Terabyte
E. Occhiuto
–
=
=
=
=
210
220
230
240
∼
∼
∼
∼
103
106
109
1012
byte
byte
byte
byte
Fondamenti Teorici e Programmazione- 437AA –
pag. 5
Sistemi di elaborazione
Architettura del calcolatore
Memoria secondaria
Caratteristiche principali
I
non volatile
I
capacità maggiore della memoria centrale (decine di GB)
I
tempo di accesso lento rispetto alla memoria centrale
I
accesso sequenziale e non casuale
I
tipi di memoria secondaria: dischi rigidi, floppy, CDROM, CDRW,
DVD, nastri, chiavette USB, . . .
E. Occhiuto
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 6
Sistemi di elaborazione
Architettura del calcolatore
Funzionamento
I
Tutti i dati e i programmi sono memorizzati nella memoria secondaria
quanto il computer è spento
I
All’accenzione il programma di avviamento (bootstrap) viene caricato
nella RAM ed eseguito
I
Questo provoca il caricamento e l’esecuzione del Kernel del S.O e
successivamente delle primitive di sistema e delle applicazioni di cui si
richiede l’esecuzione.
I
In ogni istante c’è un programma in esecuzione, e questo è
memorizzato nella RAM
E. Occhiuto
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 7
Sistemi di elaborazione
Architettura del calcolatore
Sistema operativo
I
Il programma è sempre estremamente complicato, per fortuna però
molte operazioni sono ricorrenti:
I
I
I
I
I
Lettura e memorizzazione del programma in memoria: trasferimento
dalla memoria secondaria alla RAM.
gestione della memoria secondaria (file system)
gestione dei dispositivi di I/O per la stampa e lettura dei dati,
gestione della comunicazione con altri dispositivi
esecuzione dei programmi (scheduling dei processi, multitasking)
I
Per tutte queste operazioni esistono delle funzioni la cui descrizione
(programma) è definita una volta per tutte nella macchina, nelle
primitive del Sistema operativo che vengono invocate tutte le volte
che servono.
I
i moderni sistemi operativi sono dotati di un’intrefaccia grafica che
agevola l’interazione con l’utente, che prevedono l’uso di finestre,
barre e munu di comandi di vario tipo.
E. Occhiuto
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 8
Sistemi di elaborazione
Architettura del calcolatore
Interazione con la macchina
Cosa facciamo?
I Sistemi Operativi
I
I
I
I
Applicazioni:
I
I
I
I
I
Resettings
File system
gestione I/O
Firefox, Safari, Explorer , Netscape, ecc
Word, Excel (office)
CinemaDvD
Photoshop
Linguaggi
I
I
E. Occhiuto
Compilatori per: C, Java, JavaScript, Caml, ecc.
Nuove applicazioni
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 9
Sistemi di elaborazione
E. Occhiuto
–
Architettura del calcolatore
Fondamenti Teorici e Programmazione- 437AA –
pag. 10
Sistemi di elaborazione
Architettura del calcolatore
Prosecuzione del corso articolato nei due moduli
Nel modulo A viene affrontata la parte pratica che ha come obbiettivo la
capacità di scrivere i programmi, che sono le descrizioni delle
funzioni da calcolare. A questo scopo verrà utlizato come
esempio, il linguaggio di programmazione JavaScript
mantenendo però sempre un sguardo agli altri linguaggi.
Nel modulo B si considerano alcuni aspetti di base e più teorici della
teoria dei linguaggi formali che sono indispensabili per
comprendere le potenzialità ed i limiti dello strumento
utilizzato (computer) e che forniscono delle competenze non
legate al particolare linguaggio utilizzato per programmare
E. Occhiuto
–
Fondamenti Teorici e Programmazione- 437AA –
pag. 11