Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Documenti analoghi
Descrivere i vantaggi di un sistema a memoria virtuale

GESTIONE DELLA MEMORIA CENTRALE

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

Sistemi operativi - Concetti ed esempi -Settima edizione

Capitolo 10: Memoria virtuale

Sistemi operativi e distribuiti

Memoria Virtuale. Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing

Memoria virtuale. Capitolo 9 - Silberschatz

Simuliamo ora il funzionamento di LRU sulla reference string data:

Sistemi Operativi (modulo di Informatica II) La memoria virtuale

Memoria Virtuale. Considerazioni sulla paginazione e segmentazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

La memoria virtuale. Operating System Concepts 9 th Edition

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

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Gestione della memoria

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Gestione della Memoria

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica

Gestione della memoria

GESTIONE DELLA MEMORIA CENTRALE

Gestione Memoria. Gestione della memoria

The big picture. Gestione della Memoria (2) Paging (paginazione) Schema di traduzione degli indirizzi

Sistemi operativi e distribuiti

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Memoria Virtuale. Sistemi operativi- AA 2015/16 1 1

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

Sistemi Operativi. C.d.L. in Informatica (laurea triennale) Anno Accademico Dipartimento di Matematica e Informatica Catania

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A

Sistemi Operativi Esercizi Gestione Memoria

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi Gestione della Memoria (parte 3)

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

Gestione della Memoria. Sistemi Operativi T AA

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

Page replacement. Al page fault (PF) causato da un indirizzo virtuale nella pagina P, non presente in memoria, la pagina P va copiata su una frame.

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

La gerarchia delle memorie

Esercizio: memoria virtuale

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale

Registri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete

Il supporto al sistema operativo

Sistemi Operativi. Modulo 7: Gestione della memoria

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale

Lezione 8. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Cognome e nome: Matricola: Posto:

Memory management 49

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia

La gestione della memoria

Fallimenti nella TLB

Corso di Informatica

La memoria cache. Lab di Calcolatori

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

esercizi memoria virtuale...

La gestione della memoria. Lezione 16 Sistemi Operativi

USO DELLA GERARCHIA. FONDAMENTI DI INFORMATICA Lezione n. 14 POLITICHE DI SOSTITUZIONE DIMENSIONE DEL BLOCCO THRASHING POLITICA DI ALLOCAZIONE

Docente Prò Giuseppe - Corso PENTEST MIND PROJECT A cura di Prò Giuseppe

Memoria Virtuale. Lezione 29 Sistemi Operativi

Blocchi di più parole

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

La gerarchia di Memoria

Lezione T17 Algoritmi di sostituzione delle pagine

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Sistemi Operativi. La gestione delle risorse

Unix: Gestione della Memoria

Gestione della memoria in UNIX - storia. Gestione della memoria in UNIX - fondamenti. Unix: Gestione della Memoria. Modello della memoria in Unix

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Gestione della memoria

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

Esercitazione su Gerarchie di Memoria

Gestione della Memoria

Gerarchie di memoria Memorie a componenti dinamici 1

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Miglioramento delle prestazioni

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Gerarchie di memoria Politiche di rimpiazzo dei blocchi

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:

Cognome: Nome: Matricola:

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Gestione della Memoria

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

Reti e problematiche di Rete

Calcolatori Elettronici

Introduzione Definizioni

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

SOLUZIONI: Memoria virtuale

Von Neumann Bottleneck

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

10. Memoria Virtuale. 10. Memoria Virtuale Le basi

Transcript:

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 dei frame Il problema del thrashing (paginazione degenere) 9.2 Silberschatz, Galvin and Gagne 2005 Memoria Virtuale > Memoria Fisica Memoria Virtuale separazione tra spazio di memoria logico (utente) e spazio di memoria fisico (sistema). Solo parte del programma deve necessariamente risiedere in memoria durante l esecuzione Lo spazio degli indirizzi logici può essere molto più grande dello spazio degli indirizzi fisici Lo spazio degli indirizzi può essere condiviso da più processi I processi possono essere gestiti in maniera più efficiente Implementazione della Memoria Virtuale: Paginazione su richiesta (Demand paging) Segmentazione su richiesta (Demand segmentation) 9.3 Silberschatz, Galvin and Gagne 2005 9.4 Silberschatz, Galvin and Gagne 2005

Spazio di indirizzamento virtuale Librerie Condivise e Memoria Virtuale 9.5 Silberschatz, Galvin and Gagne 2005 9.6 Silberschatz, Galvin and Gagne 2005 Paginazione su Richiesta Trasferimento di memoria paginata in spazio contiguo su disco Portare una pagina in memoria solo quando necessario Riduzione dell I/O Riduzione della memoria necessaria Tempi di risposta più rapidi Più processi/utenti Una pagina è necessaria - esiste un riferimento Se il riferimento è illegale abort Se non è in memoria caricamento della pagina Lazy swapper una pagina non viene mai portata in memoria se non quando è necessaria Swapper che gestisce le pagine prende il nome di pager 9.7 Silberschatz, Galvin and Gagne 2005 9.8 Silberschatz, Galvin and Gagne 2005

Bit di Validità Tabella delle pagine - alcune pagine non in memoria Ogni elemento della tabella delle pagine ha un bit di validità associato (v in-memoria, i non-in-memoria) Inizialmente ogni bit di validità è posto a i Quando un indirizzo viene tradotto, se il bit di validità di un riferimento è i page fault Frame #. page table valid-invalid bit v v v v i i i 9.9 Silberschatz, Galvin and Gagne 2005 9.10 Silberschatz, Galvin and Gagne 2005 Page Fault Page Fault (Cont.) Quando si indirizza una pagina per la prima volta (non in memoria) si genera un interruzione (trap): page fault 1. SO controlla se: Riferimento illegale abort Riferimento non in memoria 1. Sceglie un frame libero 2. Swap della pagina nel frame 3. Aggiorna le tabelle delle pagine 4. Pone il bit di validazione a v 5. Ricarica l istruzione che ha causato il page fault Ripristino dell istruzione possibili complicazioni Esempio: Istruzione che muove dati oltre il limite delle pagine block move Operazioni autoreferenziali 9.11 Silberschatz, Galvin and Gagne 2005 9.12 Silberschatz, Galvin and Gagne 2005

Schema di Gestione dei Page Fault Tempi della Paginazione su richiesta Tasso di Page Fault 0 p 1.0 if p = 0 nessun page fault if p = 1, ogni indirizzamento causa page fault Tempo Effettivo di Accesso (EAT) EAT = (1 p) x accesso in memory + p (overhead di page fault + swap page out + swap page in + overhead di ripristino ) 9.13 Silberschatz, Galvin and Gagne 2005 9.14 Silberschatz, Galvin and Gagne 2005 Esempio di Paginazione su richiesta Creazione dei Processi Tempo di accesso in Memoria = 200 nanosec. Tempo medio di servizio di page-fault = 8 msec. EAT = (1 p) x 200 + p (8 msec) = (1 p) x 200 + p x 8,000,000 = 200 + p x 7,999,800 nanosec. Se un indirizzamento ogni 1,000 causa page fault, allora EAT = 8.2 microsec. Cioè un fattore di rallentamento pari a 40 La memoria virtuale determina ulteriori vantaggi. Es.: creazione dei processi con Copy-on-Write 9.15 Silberschatz, Galvin and Gagne 2005 9.16 Silberschatz, Galvin and Gagne 2005

Copy-on-Write Prima che Proc1 Modifica Pagina C Copy-on-Write (CoW): processo padre e processo figlio condividono, inizialmente, le stesse pagine di memoria solo se uno di loro modifica una pagina condivisa, di tale pagina viene creata copia privata CoW velocizza la fase di creazione dei processi, in quanto solo le pagine modificate vengono ricopiate 9.17 Silberschatz, Galvin and Gagne 2005 9.18 Silberschatz, Galvin and Gagne 2005 Dopo che Proc1 ha modificato Pagina C Cosa succede se non ci sono frame liberi? Sostituzione delle pagine Cerca una pagina in memoria ma non in uso e copiala nell area di swap del disco (swap out) algoritmi performance l algoritmo ottimale dovrebbe minimizzare il numero di page fault Una stessa pagina può venire caricata in memoria in diversi momenti ed occupare frame differenti in istanti differenti Copy page C 9.19 Silberschatz, Galvin and Gagne 2005 9.20 Silberschatz, Galvin and Gagne 2005

Sostituzione delle Pagine Sostituzione delle Pagine 1. Trova la locazione della pagina desiderata su disco 2. Trova un frame libero: - se ne esiste uno, usalo - se tutti i frame sono occupati, usa un algoritmo di sostituzione delle pagine per selezionare il frame da liberare 3. Copia la pagina desiderata nel frame liberato; aggiorna le tabelle delle pagine e dei frame 4. Ripristina il processo per l esecuzione 9.21 Silberschatz, Galvin and Gagne 2005 9.22 Silberschatz, Galvin and Gagne 2005 Sostituzione delle Pagine Sostituzione delle Pagine Per ridurre i tempi di sostituzione, si può usare una tecnica di swap out modificato Uso di un bit di modifica (dirty bit) solo pagine modificate vengono ricopiate su disco L ottimizzazione del processo di sostituzione di pagina è un elemento fondamentale per implementare la paginazione su richiesta In virtù del criterio di sostituzione delle pagine, la memoria virtuale e fisica possono avere dimensioni anche notevolmente differenti 9.23 Silberschatz, Galvin and Gagne 2005 9.24 Silberschatz, Galvin and Gagne 2005

Algoritmi di Sostituzione Page Fault vs. numero di frame disponibili (andamento atteso) Scopo: minimizzare il tasso di page-fault Valutazione fatta considerando sequenze campione di riferimenti alle pagine (stringa dei riferimento) e calcolando il numero di page fault determinati da tale sequenza Consideriamo le stringhe dei riferimenti: Es.1: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Es.2: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 9.25 Silberschatz, Galvin and Gagne 2005 9.26 Silberschatz, Galvin and Gagne 2005 Algoritmo First-In-First-Out (FIFO) Algoritmo First-In-First-Out (FIFO) Stringa dei riferimenti: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 3 frame (3 pagine possono essere in memoria contemporaneamente) 1 2 3 t Stringa dei riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 0 3 frame (3 pagine possono essere in memoria contemporaneamente) 1 1 1 2 2 1 2 3 3 4 2 3 4 4 1 3 5 4 1 2 6 5 1 2 7 5 1 2 8 5 1 2 9 5 3 2 10 5 3 4 11 5 3 4 12 9 page fault 9.27 Silberschatz, Galvin and Gagne 2005 9.28 Silberschatz, Galvin and Gagne 2005

Algoritmo First-In-First-Out (FIFO) Algoritmo First-In-First-Out (FIFO) 1 2 3 1 2 3 4 t t Stringa dei riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 0 0 3 frame (3 pagine possono essere in memoria contemporaneamente) 1 1 1 2 2 1 2 3 3 4 2 3 4 4 1 3 5 4 1 2 6 5 1 2 7 5 1 2 8 5 1 2 9 5 3 2 10 1 1 1 1 1 1 5 5 5 5 4 4 1 2 2 2 3 3 2 3 4 4 2 3 4 5 2 3 4 6 2 3 4 7 1 3 4 8 1 2 4 9 1 2 3 10 9 page fault 9.29 Silberschatz, Galvin and Gagne 2005 5 3 4 11 1 2 3 11 5 3 4 12 5 2 3 12 10 page fault Stringa dei riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frame (3 pagine possono essere in memoria contemporaneamente) 4 frame 1 2 3 1 2 3 Anomalia di Belady: più frame e più page fault 1 2 3 1 2 3 4 1 2 5 1 2 4 4 3 5 3 4 4 9 page fault 5 10 page fault 9.30 Silberschatz, Galvin and Gagne 2005 FIFO con Anomalia di Belady Algoritmo Ottimale Sostituisce la pagina che, tra quelle presenti in memoria, verrà usata più tardi 9.31 Silberschatz, Galvin and Gagne 2005 9.32 Silberschatz, Galvin and Gagne 2005

Algoritmo Ottimale Algoritmo Least Recently Used (LRU) Sostituisce la pagina che, tra quelle presenti in memoria, verrà usata più tardi Sostituisce la pagina che, tra quelle presenti in memoria, non ha ricevuto riferimenti da più tempo. Esempio con 4 frame 1 2 3 4 1 2 5 1 2 3 4 5 1 1 4 2 2 2 3 3 3 4 5 5 6 page fault Problema: dovremmo sapere i riferimenti futuri Performance di riferimento per il confronto degli algoritmi 9.33 Silberschatz, Galvin and Gagne 2005 9.34 Silberschatz, Galvin and Gagne 2005 Algoritmo Least Recently Used (LRU) LRU Algorithm (Cont.) 1 Stringa dei Riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 2 1 2 3 1 2 3 4 1 2 3 4 1 2 3 4 1 2 5 4 1 2 5 4 Implementazione mediante contatori Un contatore per pagina; ad ogni riferimento, si copia il clock nel contatore 1 2 5 4 1 2 5 3 1 2 4 3 5 2 4 3 Implementazione mediante Stack stack dei numeri di pagina implementato mediante una lista doppiamente linkata Ad ogni riferimento di pagina già in memoria: Muovi l elemento corrispondente al top dello stack tempo di ricerca ridotto 9.35 Silberschatz, Galvin and Gagne 2005 9.36 Silberschatz, Galvin and Gagne 2005

Stack per gestire i riferimenti di pagine più recenti Approssimazioni di LRU Bit dei riferimenti Un bit, inizialmente =0, associato ad ogni pagina Quando si indirizza una pagina il bit e posto a 1 Sostituzione: una pagina con bit di riferimento a 0 (se c e ) Non si tiene conto dell ordine temporale dei riferimenti Bit dei riferimenti memorizzati ad intervalli regolari Seconda chance Bit dei riferimenti Sostituzione circolare (Clock replacement) se la pagina da sostituire (in ordine circolare) ha il bit a 1: Poni il bit a 0 Lascia la pagina in memoria Applica la stessa regola provando a sostituire la pagina che segue (nell ordine circolare) 9.37 Silberschatz, Galvin and Gagne 2005 9.38 Silberschatz, Galvin and Gagne 2005 Seconda-Chance Algoritmi con Contatore Conta il numero di rifererimenti fatti ad una pagina ad in intervalli di tempo di lunghezza prefissata Algoritmo LFU: sostituisci pagina il cui contatore presenta il minimo valore Problema: pagine con molti riferimenti in un breve intervallo di tempo, rimangono in memoria anche una volta divenute obsolete MFU Algorithm: il contrario di LFU la pagina con il valore più basso probabilmente è stata caricata da poco e sarà usata frequentemente nei prossimi indirizzamenti 9.39 Silberschatz, Galvin and Gagne 2005 9.40 Silberschatz, Galvin and Gagne 2005

Allocazione dei Frame Allocazione Statica Ogni processo ha bisogno di un numero minimo di pagine in memoria alcune istruzioni potrebbero indirizzare memoria che è a cavallo di più pagine Politiche di allocazione Allocazione statica Allocazione dinamica (o a priorità) Allocazione uniforme Es. : 100 frame e 5 processi. Ogni processo riceve 20 frame. Allocazione proporzionale in funzione della taglia dei processi s i = taglia del processo p i S = s i m = numero totale di frame a i = allocazione per p i = s i S m m = 64 s 1 =10 s 2 =127 a 1 = 10 137 64 5 a 2 = 127 64 59 137 9.41 Silberschatz, Galvin and Gagne 2005 9.42 Silberschatz, Galvin and Gagne 2005 Allocazione a Priorità Allocazione Globale o Locale Allocazione proporzionale, basata su priorità anziché taglia Se P i genera un page fault, Sostituisci uno dei suoi frame Sostituisci il frame di un processo con priorità più bassa Sostituzione Globale il frame per la sostituzione è scelto tra tutti i frame; un processo può usare un frame allocato ad un altro processo Sostituzione Locale ogni processo può operare sostituzione di pagina solo nei frame ad esso già allocati ma il sistema può anche modificare la quantità di frame allocati ad un processo dinamicamente 9.43 Silberschatz, Galvin and Gagne 2005 9.44 Silberschatz, Galvin and Gagne 2005

Thrashing (degenerazione) Thrashing (Cont.) Se un processo non ha abbastanza pagine, il tasso di page fault può diventare molto alto. Conseguenze: sottoutilizzo della CPU il SO reagisce aumentando il livello di multiprogrammazione un altro processo viene aggiunto si entra in un circolo vizioso Thrashing maggior parte del tempo speso in operazioni di swapping di pagine 9.45 Silberschatz, Galvin and Gagne 2005 9.46 Silberschatz, Galvin and Gagne 2005 Paging su richiesta e Thrashing Località: Statistiche degli Indirizzamenti Perché la paginazione su richiesta funziona? Criterio delle località I Processi migrano da una località all altra Le località di un processo possono essere sovrapposte Perché si ha trashing? Taglia totale delle località > taglia della memoria 9.47 Silberschatz, Galvin and Gagne 2005 9.48 Silberschatz, Galvin and Gagne 2005

Modello dell insieme di Lavoro Modello dell Insieme di Lavoro Δ finestra dell insieme di lavoro a numero fissato di riferimenti di pagina Es: 10,000 istruzioni WS i (t) : insieme di lavoro del processo P i al tempo t = pagine indirizzate nei precedenti Δ riferimenti Δ troppo piccolo può non contenere l intera località Δ troppo grande può contenere più località Δ = tutte le pagine usate dal processo D = Σ WS i : #totale di frame richiesti m : totale frame disponibili se D > m Thrashing Criterio: se D > m, sospendi uno dei processi 9.49 Silberschatz, Galvin and Gagne 2005 9.50 Silberschatz, Galvin and Gagne 2005 Come determinare l insieme di lavoro Schema 2: Frequenza dei Page-Fault Approssimazione mediante un timer + bit di riferimento Es.: Δ = 10,000 Il Timer genera un segnale ogni 5000 unità di tempo 2 bit associati ad ogni pagina memorizzano i precedenti bit di riferimento Ad ogni interruzione del timer i bit di riferimento delle pagine vengono copiati e azzerati Se almeno uno dei bit in memoria = 1 pagina nell insieme di lavoro E un approssimazione poco accurata Maggiore precisione: 10 bit e interruzioni frequenti (es.: ogni 1000 unità di tempo) Fissa un tasso accetabile di page-fault Se il tasso attuale è basso, il processo perde frame Se il tasso attuale è alto,al processo vengono allocati più frame 9.51 Silberschatz, Galvin and Gagne 2005 9.52 Silberschatz, Galvin and Gagne 2005

Prepaging Altre problematiche relative alla Paginazione Allocazione della Memoria Kernel Prepaging Scopo: ridurre l alto tasso di page falut che si verifica nelle prime fasi dell esecuzione di un processo Schema: carica un certo numero delle pagine che un processo necessiterà prima che ad esse venga fatto accesso Problema: se le pagine prepaginate non vengono utilizzate, la memoria e le operazioni di I/O eseguite risultano perse Se s pagine sono prepaginate e solo una frazione 0< α < 1 di esse vengono usate Page fault evitati = s * α Costo di prepaginazione = s * (1- α) (unnecessary pages)? α ~ 0 prepaginazione è deleteria 9.53 Silberschatz, Galvin and Gagne 2005 9.54 Silberschatz, Galvin and Gagne 2005 TLB Reach File Mappati in Memoria TLB Reach Quantità di memoria accessibile dalla TLB TLB Reach = (TLB Size) X (Page Size) Idealmente, l insieme di lavoro di ogni processo è nella TLB Altrimenti, alto tasso di page fault Soluzioni: Aumenta la taglia delle pagine Conseguenza: Aumenta la frammentazione interna Pagine di taglia variabile Riduce il rischio di frammentazione interna I/O con file mappati in memoria permette la gestione dei file in termini di accessi alla memoria. Un blocco del disco viene mappato ad una pagina di memoria Un file viene inizialmente letto mediante paginazione su richiesta. Una porzione del file della dimensione di una pagine viene inizialmente trasferita dal file-system in una pagina fisica. Ogni successiva istruzione di lettura/scrittura viene trattata come una operazione di accesso alla memoria. I/O semplificato Accesso alla memoria piuttosto che read()write() Promotion e demotion di pagine Più processi possono mappare lo stesso file in memoria Condivisione delle pagine 9.55 Silberschatz, Galvin and Gagne 2005 9.56 Silberschatz, Galvin and Gagne 2005

Memory Mapped Files Struttura dei programmi Int[128,128] data; Ogni riga in una pagina diversa Programma 1 for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0; 128 x 128 = 16,384 page fault Programma 2 128 page fault for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0; 9.57 Silberschatz, Galvin and Gagne 2005 9.58 Silberschatz, Galvin and Gagne 2005 I/O interlock Le pagine usate per I/O devono rimanere in Memoria I/O Interlock Alcune pagine devono essere bloccate in memoria Es.: I/O Pagine usate per copiare un file da un dispositivo devono essere bloccate in modo da evitare che vengano swapped out prima della ricezione dei dati dal dispositivo I/O 9.59 Silberschatz, Galvin and Gagne 2005 9.60 Silberschatz, Galvin and Gagne 2005

Allocazione di Memoria Kernel Systema Buddy Trattata in maniera diversa dalla memoria utente Spesso allocata da uno spazio contiguo di memoria libera Il Kernel necessita di memoria per strutture dati di diverse dimensioni (spesso inferiore ad una pagina) Necessità di allocazioni contigue Allocata memoria da segmenti di taglia predefinita e in pagine di memoria contigue Memoria allocata in blocchi la cui dimensione è una potenza-di-2 Le richieste vengono arrotondate alla minima potenza di due superiore sufficiente Quando si richiede meno memoria, il blocco di memoria viene suddiviso in due buddy della potenza di 2 inferiore Si continua con le suddivisioni fino alla generazione di blocchi di taglia appropriata 9.61 Silberschatz, Galvin and Gagne 2005 9.62 Silberschatz, Galvin and Gagne 2005 Sistema Buddy Allocazione a lastre (slab allocator) Slab (lastra) : una o più pagine contigue Cache : uno o più slab Ogni cache corrisponde ad una struttura dati specifica del kernel Ogni cache contiene oggetti istanze della struttura dati Alla creazione, la cache contiene oggetti vuoti L allocazione, cambia lo stato dell oggetto ad usato Slab pieno il prossimo oggetto allocato da uno slab vuoto Nessuno slab vuoto allocazione di un nuovo slab Benefici: Nessuna frammentazione, allocazione rapida Però: all interno delle lastre alcuni oggetti potrebbero non essere utilizzati 9.63 Silberschatz, Galvin and Gagne 2005 9.64 Silberschatz, Galvin and Gagne 2005

Allocazione mediante Slab 9.65 Silberschatz, Galvin and Gagne 2005