Sistemi operativi e distribuiti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi operativi e distribuiti"

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 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:

Dettagli

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 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

Dettagli

Memoria virtuale. Capitolo 9 - Silberschatz

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

Dettagli

10. Memoria Virtuale. Esercizi

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 è

Dettagli

Capitolo 10: Memoria virtuale

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

Dettagli

Sistemi operativi - Concetti ed esempi -Settima edizione

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

Dettagli

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

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

Dettagli

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

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

Dettagli

Simuliamo ora il funzionamento di LRU sulla reference string data:

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

Dettagli

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

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

Dettagli

Esercizio: memoria virtuale

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

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

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:

Dettagli

esercizi memoria virtuale...

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,

Dettagli

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

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

Dettagli

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

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

Dettagli

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria 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

Dettagli

Sistemi Operativi Esercizi Gestione Memoria

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

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

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

Dettagli

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

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 è

Dettagli

Lezione T17 Algoritmi di sostituzione delle pagine

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

Dettagli

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: 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ò

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

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

Dettagli

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

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

Dettagli

Cache: 1 livello della gerarchia di memoria

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

Dettagli

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

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

Dettagli

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

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ù

Dettagli