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