Gestione Della Memoria PDF
Document Details
Uploaded by HardierRooster5292
Università San Raffaele Roma
Noemi Scarpato
Tags
Related
Summary
These are lecture notes for a course on computer science and digital representation, focusing on memory management. The document covers topics including architecture, operating systems, and memory virtualization.
Full Transcript
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione Della Memoria 1 di 13 ...
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione Della Memoria 1 di 13 Noemi Scarpato Cosa Vedremo Nelle Lezioni 1. Fondamenti Dell´Informatica 2. Architetture e Sistemi Operativi 3. Introduzione alle Reti di Calcolatori - INTERNET, IL World Wide Web e i loro servizi. 4. Elaborazione di documenti elettronici 5. Fondamenti di elaborazione multimediale 6. Creazione di Pagine Web. Gestione Della Memoria 2 di 13 Noemi Scarpato Architetture e Sistemi Operativi Introduzione al Computer e Rappresentazione dell'Informazione. Architettura della macchina di von Neumann. Dispositivi di memoria,dispositivi di input, dispositivi di output. Classificazioni e architetture. Sistemi Operativi. Introduzione e organizzazione dei sistemi operativi. Gestione dei processi. Gestione della memoria. Gestione dei dispositivi. File system. La sicurezza nei sistemi operativi. Casi di studio: Windows (VISTA,SEVEN) e Linux (Mandriva,Ubuntu). Gestione Della Memoria 3 di 13 Noemi Scarpato Gestione della memoria Definizione: Gestore della memoria: è la parte del sistema operativo che si occupa di organizzare la memoria principale il gestore della memoria può utilizzare parte della memoria secondaria, al fine di emulare un maggior quantitativo di memoria principale Dal punto di vista del sistema operativo la memoria principale viene vista come una sequenza di byte, ogni byte è potenzialmente gestibile singolarmente in generale, la memoria viene allocata in pagine sequenziali Compiti di un gestore della memoria: tenere traccia della memoria libera e occupata allocare memoria ai processi e deallocarla quando non più necessaria Gestione Della Memoria 4 di 13 Noemi Scarpato Memory Management Unit Ogni processo è associato ad uno spazio di indirizzamento logico. Questo significa che ogni riferimento alla memoria (ad esempio, la richiesta di lettura del byte 1000) non si riferisce ad un indirizzo fisico della memoria, ma ad un indirizzo logico che il gestore della memoria si occuperà di tradurre in un indirizzo fisico. Questa traduzione non avviene chiamando direttamente il codice del sistema operativo, ma utilizzando un dispositivo hardware apposito, che prende il nome di MMU (Memory Management Unit, o unità di gestione della memoria). Gestione Della Memoria 5 di 13 Noemi Scarpato Memory Management Unit La MMU, utilizzando tabelle e strutture dati interne opportunamente preparate dal gestore della memoria del sistema operativo, traduce ogni indirizzo logico prodotto da un processo in un indirizzo fisico. La motivazione principale per utilizzare questo approccio è che si preferisce nascondere ai processi la reale organizzazione della memoria, per via della sua inerente complessità (alcune zone di memoria sono a sola lettura, altre sono utilizzate per l’output della scheda grafica o in generale per i dispositivi di I/O, ecc.). Gestione Della Memoria 6 di 13 Noemi Scarpato Memory Management Unit Un altro motivo per nascondere la reale organizzazione della memoria ai processi è quello di evitare che un processo abbia la possibilità di interagire con parti della memoria su cui non ha diritti. In questo modo, ogni processo crede di avere a disposizione uno spazio di memoria interamente dedicato a se stesso, in cui tutti gli indirizzi sono a disposizione. Inoltre, il sistema operativo può utilizzare il meccanismo di traduzione offerto dalla MMU per ottimizzare l’utilizzazione della memoria e la sua suddivisione fra i vari processi. Gestione Della Memoria 7 di 13 Noemi Scarpato La memoria virtuale Durante l’esecuzione di un processo, le istruzioni da eseguire e i dati su cui operano devono essere in memoria. Ma questa richiesta è limitata al codice e ai dati che devono essere acceduti in un particolare istante; in generale, non è necessario che l’intero spazio di indirizzamento logico di un processo sia in memoria. Infatti, esistono parti della memoria che sono utilizzate raramente, come ad esempio le routine di gestione di situazione di errore e le routine utilizzate poco frequentemente (come ad esempio il meccanismo di riassunto automatico di Word); e in generale, strutture dati molto grandi che vengono utilizzate solo parzialmente. Definizione: memoria virtuale: È la tecnica che permette l’esecuzione di processi che sono parzialmente mantenuti in memoria principale e parzialmente mantenuti in memoria secondaria Gestione Della Memoria 8 di 13 Noemi Scarpato La memoria virtuale Lo scopo è quello di permettere l’esecuzione di un insieme di processi che richiedono più memoria di quella disponibile. In ogni istante, è possibile definire per ogni processo la parte del suo spazio di indirizzamento logico che è più frequentemente usata, e la parte che è stata usata meno frequentemente. La prima viene mantenuta in memoria principale, mentre la seconda viene mantenuta in memoria secondaria. La tecnica della memoria virtuale è un’arma a doppio taglio. Gestione Della Memoria 9 di 13 Noemi Scarpato La memoria virtuale Da un lato, permette di eseguire un insieme di processi altrimenti non eseguibile in presenza di risorse limitate; dall’altro, può diminuire le prestazioni di un sistema di calcolo, specialmente se implementata o usata male. Questo succede nel caso in cui un processo voglia accedere a dati o codice che non sono attualmente in memoria; il sistema operativo deve caricare questi dati dalla memoria secondaria e collocarli in memoria principale, e se questo avviene troppo spesso le prestazioni del sistema ne risentono (essendo la memoria secondaria molto più lenta della memoria principale). Tutti i sistemi operativi moderni sono in grado di utilizzare memoria virtuale. Gestione Della Memoria 10 di 13 Noemi Scarpato La memoria virtuale Per implementare la memoria virtuale, si fa spesso ricorso ad un meccanismo che prende il nome di paginazione a richiesta. La memoria logica dei processi viene suddivisa in un insieme di blocchi chiamati pagine, di dimensione fissa. La memoria fisica viene suddivisa in un insieme di blocchi chiamati frame, della stessa dimensione delle pagine. Ogni pagina logica può essere memorizzata in un frame fisico della memoria principale oppure in blocco della memoria secondaria (normalmente su disco). Gestione Della Memoria 11 di 13 Noemi Scarpato La memoria virtuale Ogni accesso alla memoria principale deve essere gestito da un dispositivo di Memory Management Unit che sia in grado di tradurre indirizzi logici basati su pagine in indirizzi fisici basati su frame. Se la pagina logica a cui si vuole accedere è temporaneamente memorizzata in memoria secondaria, il sistema operativo si prende carico di caricare la pagina in un frame di memoria libera. Se la memoria principale è piena e non vi sono frame liberi, viene scelta una pagina che non è stata utilizzata frequentemente negli ultimi tempi e si salva il suo contenuto in memoria secondaria, liberando così un frame per la pagina da caricare. Gestione Della Memoria 12 di 13 Noemi Scarpato La memoria virtuale Se il meccanismo di selezione delle pagine è progettato correttamente, il numero di accessi a pagine già contenute in memoria principale deve superare di gran lunga il numero di accessi a pagine contenute in memoria secondaria (la cui lettura è molto più costosa della lettura di un normale sistema operativo). In altre parole, è possibile ottenere un grande vantaggio in termini di aumento (virtuale) di memoria principale, senza dover pagare in termini di prestazioni. Gestione Della Memoria 13 di 13