Capitolo 10: Memoria virtuale

Documenti analoghi
Memoria virtuale. Capitolo 9 - Silberschatz

GESTIONE DELLA MEMORIA CENTRALE

Sistemi Operativi (modulo di Informatica II) La memoria virtuale

Sistemi operativi e distribuiti

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Descrivere i vantaggi di un sistema a memoria virtuale

Sistemi operativi - Concetti ed esempi -Settima edizione

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Simuliamo ora il funzionamento di LRU sulla reference string data:

GESTIONE DELLA MEMORIA CENTRALE

Gestione della memoria

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

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

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

Gestione Memoria. Gestione della memoria

Il supporto al sistema operativo

Sistemi operativi e distribuiti

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

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

esercizi memoria virtuale...

Sistemi Operativi Esercizi Gestione Memoria

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

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

Gestione della Memoria

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

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

Capitolo 2: Strutture dei sistemi di calcolo

Architettura degli elaboratori Docente:

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

Corso di Informatica

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

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Gestione della memoria

La memoria virtuale. Operating System Concepts 9 th Edition

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

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

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Memoria. Sistemi Operativi Giuseppe Prencipe. Memoria virtuale. Gestione della memoria. Paginazione su richiesta. Paginazione su richiesta

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

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

Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Introduzione alle gerarchie di memoria

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

Calcolo prestazioni cache (1)

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Lezione T17 Algoritmi di sostituzione delle pagine

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

Capitolo 14: Struttura delle memorie di massa

Il file È un insieme di informazioni: programmi. Il File System. Il file system

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

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.

Introduzione Definizioni

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

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

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

Esercizio: memoria virtuale

Cognome e nome: Matricola: Posto:

10. Memoria Virtuale. 10. Memoria Virtuale Le basi

Gestione della Memoria. Sistemi Operativi T AA

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

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

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi. Lezione 3 Processi e Thread

Esercitazione su Gerarchie di Memoria

Memoria virtuale. Ivan Scagnetto. Università di Udine Facoltà di Scienze MM.FF.NN. A.A

Von Neumann Bottleneck

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

Processi - II. Franco Maria Nardini

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.

I file utente sistema operativo nome

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

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

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

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Inoltre, in una grandissima parte dei casi si vuole. programmi simultaneamente attivi

Memoria Virtuale. è la tecnica chge permette l esecuzione di processi che non sono completamente caricati in memoria principale

La gerarchia delle memorie

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

INIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0);

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Il Sistema Operativo. Informatica Sistema Operativo 1

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

Sistemi Operativi. Modulo 7: Gestione della memoria

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

La gestione della memoria

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi 2003/2004 WINDOWS 2000

La gestione della memoria. Lezione 16 Sistemi Operativi

Fallimenti nella TLB

Gestione della memoria

Il file system. Il File System. Attributi del file. File

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

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

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Università degli Studi di Padova - Corso di Laurea in Informatica

Transcript:

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 comporta la separazione della memoria logica dalla memoria fisica. Solo una parte del programma necessita di essere in memoria per l esecuzione. Lo spazio di indirizzamento logico può quindi essere più grande di quello fisico. Più programmi possono funzionare contemporaneamente dato che ogni programma usa meno memoria fisica (aumento dell utilizzo e del throughput della CPU). Permette agli spazi di indirizzamento di essere condivisi da numerosi processi. Maggiore efficienza nella creazione del processi (meno chiamate di I/O necessarie). La memoria virtuale rende più agevole il compito dei programmatori. Non esistono vincoli sulla memoria disponibile o problemi di programmazione degli overlay. 10.2

Richiesta di paginazione Implementazione della memoria virtuale: introdurre una pagina in memoria solo se è necessario. Meno dispositivi di I/O necessari. Meno memoria necessaria. Risposta più veloce. Più utenti. La pagina è necessaria riferimento ad essa: riferimento non valido termine del processo. non in memoria portare in memoria. 10.3

Bit valido-non valido Ogni elemento della tabella delle pagine è associato ad un bit valido-non valido (1 in-memoria, 0 non in memoria). Inizialmente il bit valido non valido è impostato a 0 per tutti gli elementi. Esempio di un istantanea della tabella delle pagine. Frame # bit valido-non valido 1 1 1 1 0 0 0 Tabella delle pagine Durante la traduzione dell indirizzo, se il bit valido-non valido è 0 nell elemento della tabella delle pagine mancanza di pagina. 10.4

Tabella delle pegine quando alcune pagine non sono nella memoria centrale 10.5

Mancanza di pagina Se il processo accede ad una pagina contrassegnata come non valida trap di mancanza di pagina (page fault). Il sistema operativo esamina un altra tabella per decidere: Riferimento non valido termine del processo. Solo non in memoria. Cercare un frame libero. Spostare la pagina nel frame. Modificare la tabella, validità del bit = 1. Fare ripartire l istruzione: block move auto increment/decrement location 10.6

Passi necessari per trattare una mancanza di pagina aggiorna 10.7

Cosa succede se non ci sono frame liberi? Sostituzione di pagina trovare alcune pagine in memoria, ma non veramente in uso, e scambiarle di posto. algoritmo prestazione L algoritmo deve essere tale per cui venga minimizzato il numero di page fault futuri, La stessa pagina può essere portata in memoria più volte. 10.8

Prestazione della richiesta di paginazione Probabilità di mancanza di pagina 0 p 1.0 se p = 0 non ci sono mancanze di pagina; se p = 1, ogni riferimento è una mancanza di pagina. Tempo di accesso effettivo (EAT) EAT = (1 p) x accesso alla memoria + p (mancanza di pagina + [scambio della pagina fuori ] + scambio della pagina dentro + ripresa) 10.9

Esempio di domanda di paginazione Tempo di accesso alla memoria (MA) = 200 nanosecondi. 50% of the time the page that is being replaced has been modified and therefore needs to be swapped out. Tempo di swap della pagina = 8 msec = 8.000.000 nsec EAT = (1 p) x 200 + p (8.000.000) 200 + 7.999.800 P (in nsec) Se p=0,001 allora EAT = 8.200 nanosecondi (>40 volte MA!) 10.10

Processo di creazione La memoria virtuale permette altri benefici durante la creazione del processo: - Copia durante la scrittura - File mappati in memoria 10.11

Copia durante la scrittura La copia durante la scrittura permette ai processi padre e figlio di condividere inizialmente le stesse pagine in memoria. Se entrambi i processi scrivono in una pagina condivisa viene creata una copia della pagina condivisa. La copia durante la scrittura copia solo le pagine che sono state modificate da entrambi i processi. Le pagine libere sono allocate da pool di pagine riempi con zero alla richiesta. 10.12

File mappati in memoria Un file I/O mappato in memoria permette ad un file I/O di essere trattato come accesso alla procedura di gestione di memoria mappando un blocco del disco ad una pagina in memoria centrale. L accesso iniziale al file procede con la richiesta di paginazione. Una porzione del file delle dimensioni di una pagina viene letta dal file system in una pagina fisica. Le successive letture e scritture del file sono trattate come accessi alle procedure di gestione della memoria. Alcuni sistemi operativi forniscono una mappatura della memoria solo con una chiamata specifica di sistema come read() write() e usano le chiamate standard di sistema per effettuare tutte le operazioni di I/O sul file. I processi possono avere il permesso di mappare lo stesso file in modo concorrente, per consentire la condivisione dei dati. 10.13

File mappati in memoria (Cont.) 10.14

Sostituzione della pagina Evitare la sovra-allocazione della memoria attraverso la procedura della mancanza di pagina che include la sostituzione di pagina. Usare un bit di modifica (modify bit) per ridurre il dispendio di trasferimento di pagine solo le pagine modificate sono scritte su disco. La sostituzione della pagina completa la separazione fra memoria logica e memoria fisica si può fornire un enorme memoria virtuale su una memoria fisica più piccola. 10.15

Necessità di sostituzione della pagina 10.16

Sostituzione di base della pagina 1. Trovare la posizione della pagina desiderata sul disco. 2. Trovare un frame libero: - se c è un frame libero, usarlo; - se non c è nessun frame libero, usare l algoritmo di sostituzione della pagine per selezionare un frame vittima. 3. Leggere la pagina desiderata nel frame libero; cambiare le tabelle dei frame e delle pagine. 4. Riprendere il processo. 10.17

Sostituzione dalla pagina aggiorna 10.18

Algoritmo di sostituzione della pagina Desiderare il più basso tasso di mancanza di pagine. Un algoritmo viene valutato facendolo operare su esempi di riferimento di sequenze di richieste di pagine e calcolando il numero di page fault. In tutti i nostri esempi la stringa di riferimento è: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 10.19

Grafico delle mancanze di pagina in funzione del numero di frame 10.20

Algoritmo FIFO Stringa di riferimento: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 3 frame (in memoria possono esserci per processo 3 pagine allo stesso tempo). 1 1 4 5 2 2 1 3 9 mancanze di pagina 3 3 2 4 4 frame 1 1 5 4 2 2 1 5 10 mancanze di pagina 3 3 2 4 4 3 Sostituzione FIFO Anomalia di Belady più frames meno mancanze di pagina. 10.21

Sostituzione FIFO della pagina 10.22

Sostituzione FIFO che ilustra l anomalia di Belady 10.23

Algoritmo ottimale Sostituire la pagina che non sarà usata per il più lungo periodo di tempo. 4 esempi di frame: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 mancanze di pagina 3 4 5 Come sapete questo? Usato per misurare quanto sono buone le prestazioni dell algoritmo. 10.24

Sostituzione ottimale della pagina 10.25

Algoritmo LRU Stringa di riferimento: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 1 5 2 3 5 4 4 3 Implementazione del contatore. Ogni pagina ha un contatore; ogni volta che si fa riferimento ad una pagina il contenuto del registro dell orologio viene copiato nel campo del tempo d uso della tabella delle pagine per quella pagina. Quando una pagina deve essere cambiata si guarda il contatore per determinare quali devono essere cambiati. 10.26

Sostituzione LRU della pagina 10.27

Algoritmo LRU (Cont.) Implementazione dello stack mentenere uno stack dei numeri di pagina in una lista a doppio collegamento: Riferimento ad una pagina: mettere la pagina in cima allo stack; richiede di cambiare 6 puntatori. Nessuna ricerca per la sostituzione. 10.28

Uso di uno stack per registrare i riferimenti alle pagine usate più di recente 10.29

Approssimazione dell algoritmo LRU Bit di riferimento. Ad ogni pagina è associato un bit, inizialmente = 0. Quando la pagina è referenziata il bit è impostato a 1. Rimpiazzare la pagina che è a 0 (se ne esiste una). Non se ne conosce l ordine tuttavia. Seconda possibilità. Bisogno di 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 1 lo pongo a zero e passo alla successiva (la pagina rimane in memoria); altrimenti la seleziono per essere sostituita. 10.30

Algoritmo della seconda possibilità (orologio) per la sostituzione dela pagina 10.31

Algoritmo di conteggio Tenere un contatore del numero di riferimenti che sono stati fatti ad ogni pagina. Algoritmo LFU: sostituisce la pagina con il più basso conteggio. Algoritmo MFU: basato sul fatto che la pagina con il conteggio più basso è stata probabilmente appena portata dentro e deve ancora essere usata. 10.32

Allocazione dei frame Ogni processo ha bisogno di un numero minimo di pagine. Esempio: IBM 370 6 pages to handle SS MOVE instruction: instruction is 6 bytes, might span 2 pages. 2 pagine to handle from. 2 pagine to handle to. Due principali schemi di allocazione. Allocazione fissa. Allocazione a priorità. 10.33

Allocazione fissa Allocazione omogenea per esempio, se 100 frame e 5 processi, ognuno prende 20 pagine. Allocazione proporzionale si assegna la memoria disponibile ad ogni processo in base alle dimensioni di quest ultimo. s S s a i i size of i process p m total number of frames allocation for p i i si m S m 64 s s a a i 2 1 2 10 127 10 64 5 137 127 64 59 137 10.34

Allocazione a priorità Usare uno schema di allocazione proporzionale che usa le priorità piuttosto che la dimensione. Se il processo P i genera una mancanza di pagina, selezionare per la sostituzione uno dei suoi frame. selezionare per la sostituzione un frame da un processo con un numero di priorità basso. 10.35

Allocazione globale e locale Sostituzione globale permette ad un processo di selezionare un frame di sostituzione a partire dall insieme di tutti i frame,anche se quel frame è correntemente allocato a qualche altro processo un processo può prendere un frame da un altro. Sostituzione locale ogni processo effettua la scelta solo nel proprio insieme di frame allocati. 10.36

Thrashing Se un processo non ha abbastanza pagine, il tasso di mancanza di pagina è molto alto. Questo comporta: basso utilizzo della CPU; il sistema operativo ritiene che sia necessario aumentare il livello di multiprogrammazione; un altro processo aggiunto al sistema. Thrashing un processo spende più tempo nella paginazione che nella propria esecuzione. 10.37

Thrashing (Cont.) Perchè la paginazione lavora? Modello di località: il processo si muove da una località all altra, le località possono sovrapporsi. Perchè si verifica il trashing? dimensione della località > dimensione totale della memoria. 10.38

Località in un modello di riferimento alla memoria 10.39

Il modello working set finestra di working-set un numero fisso di riferimenti di pagina. Esempio: 10,000 istruzioni. WSS i (working set del processo P i ) = numero totale di pagine con riferimenti nel più recente (varia nel tempo); se è troppo piccolo non comprenderà l intera località. se è troppo grande può sovrapporre parecchie località. se = il working set è l insieme delle pagine toccate durante l esecuzione del processo.. D = WSS i richiesta globale dei frames. Se D > m thrashing. Se D > m, allora viene sospeso uno dei processi. 10.40

Il modello working set 10.41

Mantenere traccia del working set Si può approssimare il modello working set con un interrupt di un temporizzatore a intervalli fissi di tempo e un bit di riferimento. Esempio: = 10,000 Interrupt di temporizzatore ogni 5000 riferimenti. Tenere in memoria 2 bit per ogni pagina. Ogni volta che si riceve l interrupt del temporizzatore si copiano e si azzerano i valori del bit di riferimento per ogni pagina. Se uno dei bit è in memoria = 1 la pagina è nel working set. Perchè non è del tutto preciso? Incremento = 10 bits e interrupt ogni 1000 riferimenti. 10.42

Frequenza delle mancanze di pagina Stabilire un tasso accettabile di mancanze di pagina: Se il tasso attuale è troppo basso, il processo può avere troppi frames. Se il tasso attuale è troppo alto, il processo ha bisogno di più frames. 10.43

Altre considerazioni Prepaginazione. La dimensione della pagina: frammentazione, dimensione della tabella delle pagine, dispositivi di I/O, località. 10.44

Altre considerazioni (Cont.) Estensione della TLB quantità di memoria accessibile dalla TLB. Estensione della TLB = (dimensione TLB) X (dimensione pagina). Idealmente il working set per un processo è memorizzato nella TLB. Se non è così il processo utilizzerà un tempo considerevole per risolvere i riferimenti di memoria nella tabella delle pagine piuttosto che nella TLB. 10.45

Estensione della TLB Incremento della dimensione della pagina. Questo può portare ad un incremento della frammentazione se non tutte le applicazioni richiedono un dimensione grande di pagina. Utilizzare pagine a multiple dimensioni. Questo permette alle applicazioni che necessitano di pagine di maggiori dimensioni l opportunità di usarle senza aumentare la frammentazione. 10.46

Altre considerazioni (Cont.) Struttura del programma: int A[][] = new int[1024][1024]; Ogni riga è memorizzata in una pagina. Programma 1 for (j = 0; j < A.length; j++) for (i = 0; i < A.length; i++) A[i,j] = 0; 1024 x 1024 mancanze di pagina. Programma 2 for (i = 0; i < A.length; i++) for (j = 0; j < A.length; j++) A[i,j] = 0; 1024 mancanze di pagina. 10.47

Ragione per cui i frame usati per operazioni di I/O devono essere in memoria. 10.48

Domanda di segmentazione Usata quando l hardware è insufficiente per implementare la domanda di paginazione. OS/2 alloca la memoria in segmenti, che ne mantiene traccia attraverso i descrittori dei segmenti. Il descrittore di un segmento contiene un bit valido per indicare se il segmento è correntemente in memoria: se il segmento è nella memoria principale, cotinua l accesso; se non è in memoria il segmento fallisce. 10.49