Sistemi operativi e distribuiti
|
|
|
- Beniamino Belli
- 9 anni fa
- Visualizzazioni
Transcript
1 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)
2 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
3 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 bit di validità Tabella delle pagine quando alcune pagine NON sono in memoria
4 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
5 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
6 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
7 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
8 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 hit 9 page fault hit 0 page fault 4 3 Anomalia di Belady aumento il numero di frame, aumentano anche i Page Fault FIFO: Anomalia di Belady
9 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, page fault 4 5 Non implementabile (ovviamente) Si usa come termine di riferimento per valutare gli altri algoritmi
10 Algoritmo di sostituzione ottimale Algoritmo Least Recently Used (LRU) Stringa di riferimento:, 2, 3, 4,, 2, 5,, 2, 3, 4, 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
11 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
12 Algoritmo Seconda Chance Perche orologio?
13 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
14 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
15 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
GESTIONE DELLA MEMORIA CENTRALE
GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:
Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame
Memoria Virtuale Sommario Introduzione Paginazione su domanda Rimpiazzamento delle pagine Allocazione dei frame 1 Introduzione Caratteristica degli schemi precedenti per la gestione della memoria: l intero
Memoria virtuale. Capitolo 9 - Silberschatz
Memoria virtuale Capitolo 9 - Silberschatz Processo in memoria Istruzioni in memoria prima di essere eseguite. Condizione necessaria e ragionevole ma le dimensioni del programma devono essere correlate
10. Memoria Virtuale. Esercizi
1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è
Capitolo 10: Memoria virtuale
Capitolo 10: Memoria virtuale Ambiente. Richiesta di paginazione. Creazione del processo. Sostituzione della pagina. Allocazione dei frame. Thrashing. Altre considerazioni. 10.1 Ambiente Memoria virtuale
Sistemi operativi - Concetti ed esempi -Settima edizione
Capitolo 9: Memoria virtuale Capitolo 9: Memoria virtuale Introduzione Paginazione su richiesta Copiatura su scrittura Sostituzione delle pagine Allocazione di frame Paginazione degenere (thrashing) File
Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!
Obiettivi Memoria Virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali Paginazione su richiesta (Demand paging) Algoritmi di sostituzione delle pagine Algoritmi di allocazione
9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale
1 (es. 1) Consideriamo un processo con m frame inizialmente uoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine dierse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il
Simuliamo ora il funzionamento di LRU sulla reference string data:
1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3
Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl
SOLUZIONI DEI PROBLEMI DEL CAPITOLO 4. Soluzione: Adottando lo schema best-fit la partizione libera utilizzata per allocare un segmento di dimensione pari a 56 byte è quella le cui dimensioni siano le
Esercizio: memoria virtuale
Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico
GESTIONE DELLA MEMORIA CENTRALE
GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:
esercizi memoria virtuale...
esercizi memoria virtuale 1..... tabella delle pagine (8.1) data la tabella delle pagine (pagina di 1024 bytes) di un processo tradurre i seguenti riferimenti in indirzzi fisici: 1052, 5499, 2221 2 1052,
Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione
Gestione della memoria Algoritmi di rimpiazzamento Segmentazione Algoritmi di rimpiazzamento Per ogni page fault il SO deve: scegliere una pagina da rimuovere dalla memoria per creare spazio per la nuova
Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E
Spazio di indirizzamento virtuale Riprendiamo lo spazio di indirizzamento virtuale del programma di inversione stringa LO SPAZIO DI INDIRIZZAMENTO VIRTUALE DI UN PROCESSO É Spazio di indirizzamento virtuale
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009 Esercitazione Università di Salerno Memoria virtuale 1. Si assuma che un processo abbia m frames (inizialmente tutti vuoti) a disposizione e
Sistemi Operativi Esercizi Gestione Memoria
Sistemi Operativi Esercizi Gestione Memoria Docente: Claudio E. Palazzi [email protected] Crediti per queste slides ad A. Memo e T. Vardanega Sistemi Operativi - C. Palazzi 64 Esercizio 1 Dato un
Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi
Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi [email protected] Problema Numerosi operai in una fabbrica preparano un unico prodotto con l utilizzo di na quantità del componente
9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale
1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è
Lezione T17 Algoritmi di sostituzione delle pagine
Lezione T17 Algoritmi di sostituzione delle pagine Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio
Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:
Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può
GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL
GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno
Architettura dei sistemi di elaborazione: La memoria (parte 2)
Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale
Cache: 1 livello della gerarchia di memoria
Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere
Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini
Architettura degli Elaboratori 19 Memoria Virtuale Prof. Andrea Sterbini [email protected] Argomenti Argomenti della lezione - Memoria Virtuale - Esercizi Problema: - In un sistema multiprocesso
La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci
La memoria virtuale Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi Nelle lezioni L2 Cache precedenti{ Più
