TEORIA DEI SISTEMI OPERATIVI Architettura del calcolatore 1 ARCHITETTURA DEL CALCOLATORE • L’architettura dell’hardware di un calcolatore reale è molto complessa • La macchina di Von Neumann è un modello semplificato dei calcolatori moderni – Von Neumann progettò, verso il 1945, il primo calcolatore con programmi memorizzabili anziché codificati mediante cavi e interruttori 2 MACCHINA DI VON NEUMANN Con il termine “Macchina di von Neumann” si intende la particolare architettura di calcolatori elettronici ideata dal matematico americano John von Neumann; essa è costituita da quattro elementi fondamentali: • Unità di elaborazione ( CPU, Central Processing Unit ): Insieme di dispositivi elettronici capaci leggere, interpretare ed eseguire le istruzioni contenute nei programmi. • Memoria centrale (MM, Main Memory): memorizza e fornisce l’accesso a dati e programmi (informazioni ed istruzioni). • BUS di sistema: canale di comunicazione, svolge la funzionalità di trasferimento di dati e di informazioni di controllo tra le varie componenti • Interfacce delle periferiche: componenti di collegamento con le periferiche del calcolatore 3 MACCHINA DI VON NEUMANN 4 MACCHINA DI VON NEUMANN - CARATTERISTICHE • Le periferiche vere e proprie come stampanti, monitor, tastiera ecc… sono considerati elementi esterni al calcolatore, in particolare nell’architettura di von Neumann, le memorie di massa (Hard Disk, CD-Rom ecc) sono considerate come periferiche. • Anche se questa è una semplificazione dei calcolatori moderni, che possono contenere altre componenti, il concetto di base è molto vicino alla realtà e dà una ottima rappresentazione delle funzionalità dei calcolatori. 5 MACCHINA DI VON NEUMANN – FUNZIONAMENTO • Il funzionamento di un calcolatore è descrivibile in termini di poche componenti (macro-unità) funzionali • ogni macro-unità è specializzata nello svolgimento di una tipologia omogenea di funzionalità • Eccezione: l’unità centrale di elaborazione, che svolge sia funzionalità di elaborazione che di controllo 6 MACCHINA DI VON NEUMANN – FUNZIONAMENTO 7 MEMORIZZAZIONE • Un calcolatore memorizza : – i dati, che rappresentano informazioni di interesse – i programmi per l’elaborazione dei dati • La memoria è l’unità responsabile della memorizzazione dei dati • Una unità di memoria fornisce due sole operazioni: – memorizzazione di un valore (scrittura) – accesso al valore memorizzato (lettura) 8 ELABORAZIONE • Le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione – – – – operazioni aritmetiche operazioni relazionali (confronto tra dati) operazioni su caratteri e valori di verità altre operazioni numeriche • Un calcolatore sa svolgere poche tipologie di operazioni elementari ma in modo molto efficiente – un calcolatore può eseguire decine o centinaia di milioni di istruzioni al secondo • L’elaborazione dei dati viene svolta – dall’unità aritmetico-logica, che è un componente dell’unità centrale di elaborazione 9 TRASFERIMENTO • Obiettivo: permettere lo scambio di informazioni tra le varie componenti funzionali del calcolatore – trasferimento dei dati e delle informazioni di controllo • Due possibili soluzioni – collegare ciascun componente con ogni altro componente – collegare tutti i componenti a un unico canale (bus) • L’utilizzo di un bus favorisce la modularità e l’espandibilità del calcolatore 10 CONTROLLO • Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo – è un componente dell’unità centrale di elaborazione – ogni componente dal calcolatore esegue solo le azioni che gli vengono richieste dall’unità di controllo • il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni – sia internamente all’unità di elaborazione sia – negli altri elementi funzionali 11 MACCHINA DI VON NEUMANN (in sintesi) • La CPU (Central Processing Unit) interpreta ed esegue le istruzioni, elabora i dati e coordina il lavoro delle periferiche. Il processore in definitiva è il motore di un computer, oltre ad essere il suo cervello. • Si compone al suo interno di tre compartimenti: – una ALU (unità aritmetico-logica) che esegue tutte le operazioni di calcolo; – una Unità di Controllo, che smista i dati da e per la memoria centrale e – i Registri, che servono a compensare la differenza di velocità di elaborazione tra CPU e Memoria Centrale: si tratta di celle di memoria interna dove i dati vengono temporaneamente archiviati. 12 CPU : SCHEMA Ad ogni ciclo (clock) l’unità di controllo: 1. prende una istruzione dalla RAM, (principale elemento della Memoria Centrale) 2. la copia nei registri, la interpreta e 3. fa eseguire alla ALU tutti i calcoli previsti, 4. poi il risultato viene memorizzato di nuovo nei registri e la risposta torna alla Memoria Centrale. 13 MEMORIE CACHE • La CPU può comunicare con la Memoria Centrale grazie ai Bus, detti anche “collegamenti di controllo,” e per agevolare un maggiore coordinamento tra le differenti velocità dei componenti si possono trovare anche memorie cache di due tipi: L1 (interne alla CPU) ed L2 (esterne alla CPU). • Il processore non è tuttavia dotato di autocoscienza, serve che qualcosa lo “svegli” e gli dia le istruzioni iniziali all’avvio del computer. 14 ROM • La ROM (Read Only Memory) i cui dati non possono essere modificati, salvo alcuni particolari modelli, contiene il software denominato BIOS, che rappresenta le istruzioni necessarie all’avvio del sistema. (se la CPU è il motore del computer, il BIOS è la chiave di accensione). • La CMOS (Complementary Metal-Oxide Semiconductor) è alimentato da una batteria. Si tratta di un chip, come la ROM, che contiene costantemente aggiornate, delle informazioni basilari quali l’ora e la data corrente. 15