Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l’esecuzione dei programmi AA 2002/2003 ©Morpurgo,, Zanaboni.

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2001/2002.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Il MIO COMPUTER.
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
Architettura del calcolatore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Istituto Comprensivo di Livigno BENVENUTI. Clemente Silvestri FONDAMENTI DI INFORMATICA.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Concetti informatici di base. Concetti informatici di base Il computer o elaboratore è una apparecchiatura costituita da un insieme di dispositivi di.
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
1 Unità didattica 1 – Concetti di base del personal computer Premessa: «L’unità didattica programmata destinata ad una allieva con obiettivi minimi della.
Sistemi Operativi : Gestione della Memoria Anno Scolastico 2012/2013 Un sistema operativo è un programma o un insieme di programmi che garantisce e permette.
HARDWARE  HARDWAREHARDWARE  FUNZIONAMENTOFUNZIONAMENTO  INDICE DISPOSITIVIINDICE DISPOSITIVI.
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI.
14/11/ D E N T R O I L COMPUTER.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
Concetti Di Base Informatica
Corso di Elementi di Informatica
15.
Sistemi e Applicazioni per l’Amministrazione Digitale
Prof. Giuseppe Chiumeo INTRODUZIONE Prof. Giuseppe Chiumeo
PRESENTAZIONE di RICCARDO
Introduzione all’Informatica
Sistemi operativi.
Il Sistema Operativo Gestione dei Processi
Architettura e funzionalità
Componenti di una scheda madre
La rappresentazione delle informazioni
Dal problema al processo risolutivo
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Dal problema al processo risolutivo
I PERMESSI IN LINUX.
Organizzazione fisica
STRUTTURA GENERALE DI UN ELABORATORE
INTRODUZIONE Il termine Informatica deriva dalla fusione dei termini INFORmazione autoMATICA si intende indicare la scienza che ha il compito di raccogliere,
Introduzione I microcontrollori.
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
analizzatore di protocollo
Architettura dei calcolatori
1.
Introduzione all’uso del computer
Informazioni di servizio
Unità di elaborazione centrale
MODULO 1 – Computer essentials
Architettura del calcolatore
IL MODELLO DI VON NEUMANN
Programmare.
Il CLOCK Il funzionamento della CPU è regolato da un clock di sistema, questo perché la CPU è una macchina sequenziale, quindi è necessario la presenza.
Definizione di linguaggio di programmazione
LOGICA DI FUNZIONAMENTO
LE PARTI INTERNE DEL COMPUTER
Parti interne del computer
LE PARTI INTERNE DEL COMPUTER
Algoritmi.
CLOUD.
Transcript della presentazione:

Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l’esecuzione dei programmi AA 2002/2003 ©Morpurgo,, Zanaboni

Struttura hw del computer Il nucleo di un computer è costituito da 3 principali componenti: Il processore La memoria Le periferiche Interconnesse attraverso il bus AA 2002/2003 ©Morpurgo,, Zanaboni

La scheda madre La piattaforma su cui sono montate alcune componenti del PC (processore, memorie, modem interno) è detta scheda madre (mother board). La scheda madre contiene slot liberi per l’eventuale aggiunta di memoria supplementare o di co-processori (es: scheda video) Contiene alcune prese (chiamate porte) per il collegamento di periferiche esterne (es: schermo, tastiera, modem esterno). AA 2002/2003 ©Morpurgo,, Zanaboni

La scheda madre Memoria bus processore Interfccia alle periferiche ©Morpurgo,, Zanaboni

IL PROCESSORE AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - chip Il processore è l’unità di elaborazione centrale (CPU: central processing unit) del computer. Oggi le CPU sono costituite da circuiti che contengono milioni di microscopici interruttori acceso/spento (i transistor) collegati tra loro da sottilissimi fili. I circuiti vengono “stampati” su una sottile lamina di silicio. Il chip che corrisponde a una CPU ha una superficie dell’ordine dei mm2. AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - chip Pertanto oggi si parla di microprocessore costituito da circuiti integrati: milioni di elementi tra loro collegati contenuti in una superficie quasi microscopica. AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore AA 2002/2003 ©Morpurgo,, Zanaboni

Il linguaggio macchina Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio linguaggio (linguaggio macchina) Ogni modello di processore (es: Intel, Pentium, Motorola, PowerPC) ha un proprio linguaggio macchina diverso da quello degli altri processori AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - clock In corrispondenza di ogni istruzione espressa nel linguaggio macchina il processore svolge una serie di operazioni elementari (il ciclo della macchina). Il numero operazioni elementari svolte per ogni istruzione dipende dal tipo di processore (tra le 7 e le 10). AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - clock Il tempo impiegato dal processore per eseguire una operazione elementare è detto durata del ciclo di clock Il numero di operazioni elementari svolte dal processore in una unità di tempo (cioè il numero di cicli di clock al secondo) è la frequenza di clock AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - clock Quindi: 1 Frequenza di clock = Durata di un ciclo di clock E’ un indicatore della “velocità” del processore nell’eseguire i programmi. Oggi si misura in Mhz (MegaHertz). 1 Mhz = 1 milione di cicli al secondo. AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - clock Dati due processori con lo stesso linguaggio macchina sarà più veloce quello con frequenza di clock maggiore Non è possibile fare un confronto tra processori con linguaggi macchina diversi AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - clock Esempio Computer A Clock : 500MHz Linguaggio macchina richiede 10 operazioni elementari per istruzione Computer B Clock : 400MHz Linguaggio macchina richiede 6 operazioni elementari per istruzione Devono eseguire un programma di 100M istruzioni macchina A impiegherà 2 sec. B impiegherà 1,5 sec. AA 2002/2003 ©Morpurgo,, Zanaboni

Ciclo della macchina Le attività principali svolte dal computer quando deve eseguire un programma sono: Trasferimento del programma (già scritto in linguaggio macchina) in una memoria di lavoro (la memoria centrale), alla quale il processore può accedere velocemente Per ogni istruzione del programma esecuzione di tre tipi di operazioni, che costituiscono il ciclo della macchina: AA 2002/2003 ©Morpurgo,, Zanaboni

Ciclo della macchina Lettura (fetch)– il processore reperisce dalla memoria l’istruzione da eseguire Decodifica (decode) – il processore identifica l’istruzione da eseguire Esecuzione (exec) – il processore esegue le operazioni corrispondenti all’istruzione AA 2002/2003 ©Morpurgo,, Zanaboni

Il processore - registri Per eseguire le operazioni elementari il processore ha bisogno di utilizzare delle memorie (di piccole dimensioni) alle quale accedere in modo veloce (es: una zona che contiene l’indirizzo dell’istruzione da eseguire, una per i dati su cui l’istruzione opera) Queste memorie, che fisicamente sono contenute nel chip, sono chiamate registri del processore AA 2002/2003 ©Morpurgo,, Zanaboni

Memoria processore … registro registro registro Interfccia alle periferiche AA 2002/2003 ©Morpurgo,, Zanaboni

Sistemi con più processori I co-processori A seconda del tipo di uso che l’utente fa del computer, per velocizzarne le prestazioni si possono aggiungere dei co-processori. Questi sono processori specializzati nell’esecuzione di compiti specifici (es: gestione dello schermo) che operano sotto il controllo della CPU. AA 2002/2003 ©Morpurgo,, Zanaboni

Memoria processore … co-processore registro registro registro Interfccia alle periferiche AA 2002/2003 ©Morpurgo,, Zanaboni

Sistemi con più processori Sistemi paralleli I sistemi paralleli sono sistemi con più CPU che operano in modo indipendente e condividono le altre risorse del computer. Il coordinamento dei diversi processori è demandato al sistema operativo. La velocità del computer risulta aumentata ma non moltiplicata, perché non è trascurabile il tempo che il sistema operativo deve dedicare al coordinamento dei processori AA 2002/2003 ©Morpurgo,, Zanaboni

processore … Memoria processore … registro registro registro registro Interfccia alle periferiche AA 2002/2003 ©Morpurgo,, Zanaboni

Sistemi distribuiti Le reti informatiche permettono di condividere risorse hw e sw presenti in luoghi geografici diversi. Si parlerà delle reti più avanti nel corso. AA 2002/2003 ©Morpurgo,, Zanaboni

LA MEMORIA AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria La memoria è la componente che svolge la funzione di magazzino delle informazioni sulle quali opera il processore L’unità di informazione minima è il bit (binary unit). Consideriamola come una casella nella quale possiamo scrivere il simbolo 0 oppure il simbolo 1. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-il bit Avendo a disposizione un solo bit si possono rappresentare due elementi diversi: Si assegna al primo elemento la codifica 0 e al secondo la codifica 1 Avendo a disposizione due bit si possono rappresentare quattro elementi diversi, assegnando a ciascuno una codifica diversa: 00, 01, 10, 11 AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-il bit Avendo a disposizione tre bit si possono rappresentare otto elementi diversi. .… Avendo a disposizione n bit si possono rappresentare 2n elementi diversi. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-il byte Agli albori dell’informatica c’era l’esigenza di rappresentare i caratteri stampabili (le lettere dell’alfabeto, le cifre da 0 a 9, lo spazio, la virgola etc…) per un numero totale di caratteri compreso tra 90 e 120. Per poter rappresentare 128 elementi diversi servono almeno 7 bit (27=128). E’ bene avere a disposizione un bit supplementare poter effettuare controlli sulla sequenza AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-il byte Quindi per rappresentare i caratteri stampabili è necessaria una sequenza di 7+1=8 bit. Una sequenza di 8 bit è detta byte, ed è diventata una unità di misura della occupazione di memoria. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-il byte BYTE = b 1 1 1 1 1 BIT AA 2002/2003 1 1 1 1 BIT AA 2002/2003 ©Morpurgo,, Zanaboni

Le celle di memoria AA 2002/2003 ©Morpurgo,, Zanaboni

Le celle di memoria Ogni cella di memoria contiene un byte, ed è contraddistinta da un indirizzo Volendo scrivere o leggere un dato dalla memoria il processore deve sempre specificare l’indirizzo della cella alla quale vuole accedere AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-unità di misura Le dimensioni di una memoria si misurano in: Kbyte (kilo byte)= 210 byte = 1024 byte ≈ 103 byte Mbyte (Mega byte)= 210 Kbyte = 1024 Kbyte= 220 byte ≈ 106 byte Gbyte (Giga byte)= 210 Mbyte =1024 Mbyte = 230 byte ≈ 109 byte Tbyte (Tera byte)= 210 Gbyte =1024 Gbyte = 240 byte ≈ 1012 byte AA 2002/2003 ©Morpurgo,, Zanaboni

ESECUZIONE DEI PROGRAMMI AA 2002/2003 ©Morpurgo,, Zanaboni

L’esecuzione dei programmi La memoria centrale è l’area di lavoro: contiene i programmi in esecuzione in quel momento ed i relativi dati in particolare, contiene sempre la parte del sistema operativo che governa l’utilizzo delle risorse di calcolo L’unità fisica che esegue i programmi in memoria centrale è la CPU (CPU, Central Processing Unit) AA 2002/2003 ©Morpurgo,, Zanaboni

L’esecuzione dei programmi Si dice che un programma ha il controllo della CPU se la CPU sta eseguendo quel programma; impropriamente, diremo che: un programma P svolge un compito per dire che la CPU svolge quel compito sotto il controllo di P AA 2002/2003 ©Morpurgo,, Zanaboni

L’esecuzione dei programmi del Sistema Operativo (SO) Quando il calcolatore è in attesa di comandi, il controllo della CPU è detenuto dal SO, che: gestisce l’interfaccia utente accetta i comandi dell’utente avvia (lancia) l’esecuzione dei programmi applicativi AA 2002/2003 ©Morpurgo,, Zanaboni

L’esecuzione di un programma applicativo La CPU è sotto il controllo del SO, che gestisce l’interfaccia utente L’utente chiede, tramite l’interfaccia, di eseguire, ad esempio, WORD La CPU, sotto il controllo del SO, riconosce la richiesta e carica WORD in memoria centrale inizia ad eseguire WORD L’esecuzione di WORD termina e la CPU riprende ad eseguire il SO; nuovamente sotto il controllo del SO, la CPU è pronta ad accettare nuovi comandi AA 2002/2003 ©Morpurgo,, Zanaboni

Ma la situazione è più complessa In realtà il SO gestisce l’esecuzione di più programmi e più utenti, per cui si hanno più processi e il SO concede la CPU a ciascuno di essi, per piccoli intervalli di tempo, a rotazione o secondo altre politiche tutto ciò è trasparente all’utente e non ce ne occuperemo in questo corso AA 2002/2003 ©Morpurgo,, Zanaboni

Funzionamento della CPU RI (Registro Istruzione) registri PC (Program counter) registro dati 1 … Memoria centrale … … processore … registro dati k CPU AA 2002/2003 ©Morpurgo,, Zanaboni

La nostra CPU finta Una CPU può leggere/scrivere il contenuto di una sola cella di memoria alla volta, specificandone l’indirizzo; contiene inoltre dei registri, come area di lavoro veloce la nostra CPU finta contiene i seguenti registri il registro PC (Program counter) che contiene l’indirizzo dell’istruzione da reperire il registro RI, (Registro istruzioni) che contiene l’istruzione da decodificare ed eseguire 4 registri dati il ciclo di esecuzione, nelle sue fasi, avviene come segue AA 2002/2003 ©Morpurgo,, Zanaboni

Ciclo della macchina La CPU esegue le istruzioni in memoria centrale ripetendo i seguenti passi (ciclo della macchina): 1) Lettura (fetch) reperisce dalla memoria centrale l’istruzione da eseguire e la carica nel registro istruzioni RI 2) Decodifica (decode) riconosce l’istruzione presente nel RI; 3) Esecuzione (exec) esegue le operazioni dettate da tale istruzione 4) Torna al passo 1) per la lettura della prossima istruzione AA 2002/2003 ©Morpurgo,, Zanaboni

Esempio con una CPU finta, che usa la numerazione decimale La nostra CPU finta usa una memoria centrale indirizzata da 2 cifre decimali, cioè di 100 elementi 013005 Celle di memoria di lunghezza 6 cifre decimali 00 Indirizzi da 00 a 99 012006 01 02 112310 03 021006 999999 04 05 000120 06 000080 …. …….. AA 2002/2003 ©Morpurgo,, Zanaboni

Quando inizio il reperimento il PC contiene l’indirizzo dell’istruzione da eseguire in quel momento In questo esempio è l’istruzione di indirizzo 01 013005 00 registri 012006 01 000000 01 PC 02 112310 1 000120 013005 RI 03 021006 2 000000 999999 04 processore 000000 3 05 000120 06 000080 CPU …. …….. Nel reperimento: la CPU trasferisce l’istruzione da eseguire (di indirizzo 01) nel RI e si ottiene: AA 2002/2003 ©Morpurgo,, Zanaboni

che RI contiene l’istruzione da eseguire 013005 00 Registri dati 012006 01 02 PC 000000 02 112310 012006 1 000120 RI 03 021006 2 000000 999999 04 processore 000000 3 05 000120 06 000080 CPU …. …….. il PC punta già alla prossima, di indirizzo 02 ha inizio la decodifica ed esecuzione dell’istruzione in RI AA 2002/2003 ©Morpurgo,, Zanaboni

L’esecuzione trasferisce 000080 nel registro 2 Decodifica 01 2 0 06 trasferisci nel registro 2 il dato contenuto nella cella di memoria 06 011005 00 Registri dati 012006 01 02 PC 000000 02 112310 012006 1 000120 RI 03 021006 2 000000 999999 04 processore 000000 3 05 000120 06 000080 CPU …. …….. L’esecuzione trasferisce 000080 nel registro 2 AA 2002/2003 ©Morpurgo,, Zanaboni

Inizia un nuovo ciclo di esecuzione, che reperisce 011005 00 Registri dati 012006 01 02 PC 000000 02 112310 012006 1 000120 RI 03 021006 2 000080 999999 04 processore 000000 3 05 000120 06 000080 CPU …. …….. Inizia un nuovo ciclo di esecuzione, che reperisce l’istruzione puntata dal PC, ora quella di indirizzo 02, e così via AA 2002/2003 ©Morpurgo,, Zanaboni

LA MEMORIA AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria- parametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo di trasferimento, misurata in base alla quantità di dati trasferita in una unità di tempo. È anche chiamata larghezza di banda, e si misura in bit/sec. oppure byte/sec. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria- parametri di caratterizzazione capienza, cioè la quantità di byte che può contenere costo, misurato in migliaia di lire per byte modalità di accesso, cioè la possibilità di: reperire le informazioni memorizzate (accesso in lettura) modificare le informazioni memorizzate (accesso in scrittura) AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria- parametri di caratterizzazione volatilità, cioè la possibilità di mantenere il proprio contenuto anche in mancanza di alimentazione elettrica: Le memorie volatili perdono il contenuto in assenza di alimentazione elettrica Le memorie permenenti lo mantengono (non in eterno, ma per un tempo che dipende dal tipo di dispositivo: decenni o più). AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria-gerarchia Esiste una dipendenza diretta tra costo di realizzazione e velocità del dispositivo. Per questo motivo la memoria di un computer è distribuita su dispositivi hw diversi, che nel loro insieme costituiscono il sistema di memoria del computer, detto gerarchia di memorie. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria -gerarchia Ai livelli più alti della gerarchia di memorie ci sono le memorie più veloci ma più costose. Ai livelli più bassi ci sono quelle più economiche AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria- uso della gerarchia Se voglio prepararmi un piatto di spaghetti guardo se ne ho nella dispensa; se non ne trovo lì allora devo andare dal panettiere sotto casa perdendo un po’ di tempo in più; se non ne trovo neanche lì devo andare al supermercato, dove perderò ancora più tempo. Analogamente: Quando il processore ha bisogno di un dato, prima guarda se è presente nella memoria veloce cache; se non lo trova lì lo va cercare nella memoria centrale un po’ più lenta , se non c’è neanche lì, lo va a cercare sul disco fisso che ha tempi di accesso e trasferimento superiori. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria -gerarchia I registri del processore (ciascuno di 32 bit ) I livelli di memoria presenti nella configurazione standard di un PC di oggi sono: I registri del processore (ciascuno di 32 bit ) La memoria cache (256 Kbyte) La memoria centrale (128 Mbyte) Il disco fisso (20 Gbyte) I supporti a lettura ottica (CD-ROM) I supporti magnetici (dischetti, zip) AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie volatili Le memorie volatili sono memorie elettroniche, realizzate con la tecnologia dei circuiti integrati (VLSI, very large scale integration) Sono indicate con il termine RAM (Random Access Memory) perché l’accesso ad una cella di memoria richiede un tempo indipendente dalla posizione in cui la cella risiede. La memoria centrale, la cache e i registri del processore sono memorie volatili AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie volatili AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie permanenti Le memorie permanenti si dividono in due classi: Le memorie di sola lettura (ROM: read only memory), cioè dispositivi il cui contenuto, una volta immagazzinato, è inalterabile. Le memorie di lettura e scrittura, i cui contenuti possono essere letti e anche cambiati nel tempo AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie permanenti Le memorie su supporto magnetico (dischetti, dischi, nastri) Scrittura e lettura Accesso sequenziale e lento Basso costo AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie permanenti Le memorie ottiche (CD-ROM, DVD) Accesso sequenziale ma veloce Di sola lettura (per il momento) Basso costo AA 2002/2003 ©Morpurgo,, Zanaboni

Le memorie permanenti Esiste anche una memoria non volatile realizzata con tecnologia elettronica e di sola lettura: è la ROM, che contiene informazioni di vario tipo che servono per l’esecuzione di particolari funzioni, come l’avvio del computer o la diagnosi del funzionamento delle periferiche. AA 2002/2003 ©Morpurgo,, Zanaboni

Memorie: confronti Nota: ns=nanosecondi=10-9 sec. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria centrale Quando il computer è spento tutte le informazioni risiedono sul disco fisso. Appena lo si accende tutte le informazioni necessarie al suo funzionamento vengono trasferite dalla ROM e dal disco fisso alla memoria centrale. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria centrale In particolare, il sistema operativo, che a computer spento risiede sul disco fisso, viene copiato nella memoria centrale, e lì ci rimarrà fino a quando verrà spento il computer. Zona riservata al sistema operativo Memoria Centrale Programmi applicativi e dati AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria cache La memoria cache è utilizzata come passaggio intermedio tra la memoria centrale e il processore e contiene informazioni che il sistema operativo di volta in volta ritiene più urgenti e utili. AA 2002/2003 ©Morpurgo,, Zanaboni

Interfaccia alle periferiche ROM registro Disco rigido registro processore … bus registro Memoria centrale cache Interfaccia alle periferiche AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale Le dimensioni della memoria centrale sono relativamente piccole, e spesso succede che i programmi applicativi o i file di dati abbiano dimensioni superiori allo spazio disponibile nella RAM. Situazioni di questo tipo si verificano soprattutto quando un utente richiede di lavorare con più di una applicazione “contemporaneamente”. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Non c’è spazio ! Applicazione 1 come gestire questa situazione? Applicazione 2 Applicazione 3 Parte di memoria rimasta libera dati usati da Applicazione 1 dati usati da Applicazione 2 File da caricare in memoria centrale AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale In questi casi il sistema operativo dovrebbe impedire l’apertura di nuovi programmi per mancanza di memoria. Una soluzione meno drastica consiste nel permettere al sistema operativo di utilizzare una zona del disco fisso come “espansione” della memoria centrale, e di usarla come deposito temporaneo di alcune informazioni contenute nella memoria centrale. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- swapping La parte di disco fisso dedicata a questa funzione di memoria virtuale è detta area di swap, e non è accessibile da parte dell’utente. Il sistema operativo sceglie quali parti della memoria centrale scaricare temporaneamente nell’area di swap e quali parti dell’area di swap riportare in memoria centrale AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale-swapping Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Applicazione 1 Area di swap Applicazione 2 Trasferiti in area di swap Applicazione 3 dati usati da Applicazione 1 dati usati da Applicazione 2 File da caricare in memoria centrale AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- swapping Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Applicazione 1 Area di swap Applicazione 2 File caricato in memoria centrale Applicazione 3 dati usati da Applicazione 1 dati usati da Applicazione 2 AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- paging I problemi non sono completamente risolti se si cerca spazio contiguo nella memoria centrale. Ecco un caso tipico non risolto applicando semplicemente lo swapping: AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- paging Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Spazio sufficiente ce ne sarebbe, ma non contiguo Applicazione 1 Applicazione 3 Parte di memoria rimasta libera dati usati da Applicazione 1 File da caricare in memoria centrale AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- paging La soluzione consiste nel gestire i file a pagine, permettendo il trasferimento di alcune pagine dalla e nella memoria centrale al posto dei file interi. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- paging Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Applicazione 1 Applicazione 3- pag 1 Applicazione 3- pag 2 Applicazione 3- pag 3 Parte di memoria rimasta libera dati usati da Applicazione 1 Applicazione 3- pag 4 File da caricare in memoria centrale AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale- paging Memoria centrale Sistema operativo Disco fisso Zona riservata al sistema operativo Area di swap Applicazione 1 Applicazione 3- pag 1 Pagine del file caricate in pagine di memoria centrale Applicazione 3- pag 2 Applicazione 3- pag 3 dati usati da Applicazione 1 Applicazione 3- pag 4 AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale La combinazione di paginazione e swapping permette un utilizzo ottimizzato della memoria centrale. Il sistema operativo di volta in volta decide quali pagine scaricare dalla memoria centrale all’area di swap e quali portare dall’area di swap in memoria centrale. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale L’utente può accorgersi di una page fault (cioè del fatto che la pagina richiesta non è presente nella memoria centrale) durante l’utilizzo di una applicazione, perché percepisce un ritardo tra un comando inviato al computer e la risposta Ciò è dovuto al fatto che l’algoritmo di gestione della memoria è abbastanza complesso. AA 2002/2003 ©Morpurgo,, Zanaboni

La memoria virtuale Infatti il sistema operativo deve: scegliere quali pagine trasferire in base all’uso che l’utente ne sta facendo mantenere aggiornate le tabelle che tengono traccia della corrispondenza tra indirizzi logici (cioè la sequenza di pagine di un dato file) e indirizzi fisici (cioè la loro posizione nella memoria fisica) AA 2002/2003 ©Morpurgo,, Zanaboni