Sistemi operativi e distribuiti

Documenti analoghi
GESTIONE DELLA MEMORIA CENTRALE

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame

Memoria virtuale. Capitolo 9 - Silberschatz

10. Memoria Virtuale. Esercizi

Capitolo 10: Memoria virtuale

Sistemi operativi - Concetti ed esempi -Settima edizione

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Simuliamo ora il funzionamento di LRU sulla reference string data:

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl

Esercizio: memoria virtuale

GESTIONE DELLA MEMORIA CENTRALE

esercizi memoria virtuale...

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc Esercitazione. Memoria virtuale

Sistemi Operativi Esercizi Gestione Memoria

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Lezione T17 Algoritmi di sostituzione delle pagine

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Cache: 1 livello della gerarchia di memoria

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

Transcript:

Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento logico può essere molto più grande della memoria fisicamente disponibile. Alcune pagine potrebbero essere condivise tra più prccessi Es. il codice binario di un editor che tutti usano La memoria virtuale viene generalmente implementata con dei meccanismi di Paginazione su richiesta (Demand Paging)

Esempio di memoria virtuale più grande della memoria fisica Demand Paging Porto una pagina in memoria solo quando è necessario Diminuiscono le operazioni di I/O Diminuisce la richiesta di memoria Diminuiscono i tempi di attesa Aumentano gli utenti supportati Quando ho un riferimento ad una locazione di memoria, allora la pagina che la contiene è necessaria Riferimento non valido errore pagina non in memoria la recupero dal disco

Bit di validità All interno della tabella delle pagine è associato ad ogni pagina un bit di validità in-memoria 0 sul disco inizialmente il valore è 0 per tutte le pagine Frame # Durante la traduzione dell indirizzo da virtuale a fisico, se il bit di validità è 0, genero un page fault (eccezione di pagina mancante) M page table 0 0 0 bit di validità Tabella delle pagine quando alcune pagine NON sono in memoria

Page Fault La prima volta che una pagina è necessaria viene generato un Page Fault Il sistema operativo cerca di capire se: È un riferimento illegale Bisogna recuperare la pagina Viene allocato un frame (pagina fisica) vuoto La pagina viene trasferita dal disco al frame appena reso disponibile Il bit di validità per quella pagina viene posto a L esecuzione riprende dove era stata interrotta Page Fault

Che cosa succede se non ci sono frame liberi? Sostituzione di una pagina Si determina una pagina di memoria attualmemte non utilizzata e la si sposta sul disco Serve un algoritmo L algoritmo deve essere tale per cui venga minimizzato il numero di Page Fault futuri La stessa pagina potrebbe essere richiamata in memoria più di una volta Sostituzione di una pagina Di solito viene implementato nella routine di gestione del Page Fault per evitare affollamento iin memoria Si fa uso di un bit (dirty bit ) per marcare le pagine modificate, in maniera tale da scrivere solo quelle sul disco

Algoritmo di base. Si individua la locazione sul disco della pagina richiesta 2. Si individua un frame libero. Se esiste lo si usa 2. Se non esiste si usa un algoritmo di sostituzione delle pagine per selezionare un frame vittima e lo si trasferisce sul disco (liberando un posto) 3. Si legge la pagina nel frame libero (o liberato) aggiornando le tabelle di sistema 4. Viene fatto ripartire il processo Sostituzione di una pagina

Algoritmi per la sostituzione di pagine Cercano di minimizzare il numero di Page Fault Vengono valutati utilizzando una sequenza di riferimenti a pagine di memoria (stringa di riferimento) e contando il numero di Page Fault generati dal sistema Negli esempi che seguiranno useremo due stringhe di riferimento:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5. 7, 0,, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2,, 2, 0,, 7, 0, Page Fault in funzione del numero di frame in memoria

Algoritmo First-In-First-Out (FIFO) Stringa di riferimento:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 Frame di memoria disponibili: 3 4 frame 2 3 4 2 5 3 4 3 hit 9 page fault 2 3 5 2 4 5 2 hit 0 page fault 4 3 Anomalia di Belady aumento il numero di frame, aumentano anche i Page Fault FIFO: Anomalia di Belady

FIFO: Sostituzione delle pagine Algoritmo ottimale Sostituisco le pagine che non SARANNO utilizzate per il periodo di tempo più lungo 4 frame, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 2 3 4 6 page fault 4 5 Non implementabile (ovviamente) Si usa come termine di riferimento per valutare gli altri algoritmi

Algoritmo di sostituzione ottimale Algoritmo Least Recently Used (LRU) Stringa di riferimento:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 5 2 3 5 4 4 3 Viene implementato con un contatore Ogni pagina contiene un contatore; quando la pagina viene acceduta viene copiato il valore del clock di sistema nel contatore Quando devo sostituire una pagina seleziono quella con il contatore più vecchio

LRU: Sostituzione delle pagine Algoritmi per l approssimazione di LRU Con bit supplementare di riferimento Ad ogni pagina è associato un bit, inizialmente a 0 Quando la pagina viene referenziata tale bit è posto a La pagina vittima viene selezionata tra quelle con il bit a 0 A intervalli regolari vengono riazzerati tutti Seconda chance (orologio) Anche qui serve un bit di riferimento Le pagine sono disposte in una lista circolare Quando occorre selezionare una pagina vittima comincio una scansione lungo la lista. Se una pagina ha il bit di riferimento a lo pongo a zero e passo alla successiva (la pagina rimane in memoria) Altrimenti la seleziono per essere sostituita

Algoritmo Seconda Chance Perche orologio?

Thrashing Quando il numero di frame diventa troppo basso il ritmo dei Page Fault aumenta a dismisura; questo fa si che: La CPU utilizzi la maggior parte del suo tempo per rimpiazzare pagine Il sistema operativo pensa che ci siano MOLTE risorse disponibili (la CPU lavora POCO per i processi) Altri processi vengono ammessi nel sistema Sempre più pagine devono essere rimpiazzate Thrashing: il processore passa tutto il suo tempo trasferendo pagine dal disco alla memoria Thrashing Modello di località Un processo staziona su un certo insieme di pagine di memoria per un periodo (località) Durante la sua esecuzione un processo passa da una località all altra Le località potrebbero sovrapporsi parzialmente Perchè avviene il Trashing? La somma delle località in un dato momento è maggiore della dimensione della memoria

Working Set Indichiamo con una Finestra di Working Set (Un numero fissato di riferimenti a pagine di memoria) Indichiamo conwss i la dimensione del Working Set del processo P i (Il numero totale di pagine referenziate nel più recente) Se è troppo piccolo non riuscirà a ricoprire tutta l attuale località di P i Se è troppo largo ricoprirà più di una località Se tende ad infinito ricoprirà tutto il programma Indichiamo con D il numero totale di frame richiesti durante un intervallo di tempo dal sistema D = Σ WSS i Se D è più grande della memoria, allora si ha il fenomeno del Thrashing Devo decidere di sospendere (swappare) uno o più processi Working Set

Page-Fault Frequency Scheme Vengono attribuiti un certo numero di frame ad un processo Si stabiliscono dei limiti che identificano i valori accettabili per la frequenza di page-fault di un processo. Se il page-fault rate e inferiore al limite, gli togliamo unframe Se il page fault rate e superiore al limite, gli aggiungiamo un frame