La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Frosini Memoria virtuale Slide 1

Presentazioni simili


Presentazione sul tema: "G. Frosini Memoria virtuale Slide 1"— Transcript della presentazione:

1 G. Frosini Memoria virtuale Slide 1

2 G. Frosini Memoria virtuale Slide 2
Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l’insieme degli indirizzi logici costituisce il cosiddetto spazio logico. Processore: utilizza indirizzi che prendono il nome di indirizzi fisici, emessi utilizzando un certo numero di piedini: l’insieme degli indirizzi fisici costituisce il cosiddetto spazio fisico. Memoria fisica: quella effettivamente presente in un calcolatore; sottoinsieme dello spazio fisico (in genere non coincidente con lo spazio fisico per problemi di costo). Caso più semplice: indirizzo logico coincidente con indirizzo fisico; in questo caso un programma in esecuzione può utilizzare al massimo uno spazio di memoria avente una dimensione uguale a quella della memoria fisica; caso di multiprogrammazione: l’insieme di tutti i programmi in esecuzione … G. Frosini Memoria virtuale Slide 2

3 G. Frosini Memoria virtuale Slide 3
PAGINAZIONE (1) Spazio di memoria di un programma che supera la dimensione della memoria fisica: caso di multiprogrammazione: insieme degli gli spazi di memoria dei programmi in esecuzione … opportuno rendere differenti gli indirizzi logico e fisico; meccanismo di virtualizzazione dello spazio di memoria (indirizzo logico diviene virtuale e memoria logica diviene virtuale), uno spazio per ogni programma, con utilizzo, oltre che della memoria fisica, anche della memoria di massa. Indirizzo virtuale: costituito da un numero di bit in genere maggiore o uguale a quello di un indirizzo fisico (supponiamo uguale). Paginazione: indirizzo virtuale pensato suddiviso in due parti: un indirizzo virtuale di pagina (a bit) e un indirizzo virtuale di riga all’interno della pagina (b bit); memoria virtuale suddivisa in 2**a pagine, ciascuna di ampiezza 2**b byte; memoria fisica suddivisa in pagine di ampiezza 2**b byte. Associazione tra pagine virtuali e pagine fisiche: realizzata mediante una tabella di corrispondenza. G. Frosini Memoria virtuale Slide 3

4 G. Frosini Memoria virtuale Slide 4
PAGINAZIONE (2) G. Frosini Memoria virtuale Slide 4

5 G. Frosini Memoria virtuale Slide 5
PAGINAZIONE (3) Indirizzo virtuale di pagina: utilizzato per accedere a una riga di questa tabella (descrittore di pagina), che dà l’indirizzo fisico di pagina. Indirizzo virtuale di riga: rappresenta anche l’indirizzo fisico di riga (rimane inalterato). Memoria virtuale: può contenere fino a 2**a pagine; caso di multiprogrammazione: memoria virtuale di ogni programma. Memoria fisica: in genere, è in grado di contenere un numero di pagine assai inferiore a 2**a (moltiplicato il numero dei programmi in esecuzione), per cui viene utilizzata, per la memorizzazione temporanea delle pagine, anche la memoria di massa. G. Frosini Memoria virtuale Slide 5

6 G. Frosini Memoria virtuale Slide 6
PAGINAZIONE (4) Programma che genera un indirizzo virtuale di memoria: la Memory Management Unit (MMU) provvede ad effettuare (via hardware) la traduzione di indirizzo da virtuale a fisico. Tabella di corrispondenza: bit P (Present) contenuto in ogni descrittore, specifica se una pagina virtuale è presente o meno in memoria fisica; in caso di non presenza, la MMU genera un’eccezione di page-fault: memorizzazione (in un registro speciale del processore) dell’indirizzo virtuale non tradotto, e in pila dell’indirizzo dell’istruzione attuale. Routine che va in esecuzione (routine di page-fault): utilizza le informazioni contenute nel registro speciale del processore per completare a livello software la gestione della memoria virtuale; provvede a effettuare un trasferimento, ricopiando la pagina dalla memoria di massa alla memoria fisica e aggiornando la tabella di corrispondenza ("aggancio" della pagina trasferita). Campo del descrittore di pagina normalmente riservato all’indirizzo fisico: nel caso di una pagina non presente, può essere utilizzato per identificare la pagina stessa nella memoria di massa, e quindi utilizzato dalla routine di page-fault. G. Frosini Memoria virtuale Slide 6

7 G. Frosini Memoria virtuale Slide 7
PAGINAZIONE (5) Routine di page-fault: nel caso di non disponibilità di una pagina libera in memoria fisica, provvede a effettuare un rimpiazzamento, trasferendo preliminarmente una pagina dalla memoria fisica alla memoria di massa e aggiornando la tabella di corrispondenza ("sgancio" della pagina rimossa). Gestione dei fault: i registri del processore devono avere copie di lavoro; i registri vengono aggiornati solo quando l’istruzione è stata completamente eseguita; l’interruzione di page-fault memorizza in pila il valore di EIP che non è stato ancora aggiornato, ossia l’indirizzo dell’istruzione attuale. Termine della routine di page-fault: istruzione IRET; il programma ricomincia con il prelievo e l’esecuzione dell’istruzione interrotta (l’istruzione interrotta viene rieseguita); i registri del processore non sono stati modificati dalla precedente esecuzione parziale della stessa istruzione. G. Frosini Memoria virtuale Slide 7

8 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE
per poter essere acceduta via software, è sufficiente che si trovi anche in memoria virtuale. Posizionamento della tabella in memoria virtuale: nella tabella di corrispondenza occorre che vi siano descrittori che hanno come indirizzi fisici quelli delle pagine che contengono la tabella stessa. G. Frosini Memoria virtuale Slide 8

9 MEMORIA VIRTUALE E RILOCAZIONE
dimensioni non legate a quelle della memoria fisica, ma a quelle della memoria di massa; completamente trasparente al programmatore: tutti gli indirizzi generati dal programma sono riferiti allo spazio di indirizzamento virtuale; traduzione degli indirizzi effettuata dalla MMU; gestione del trasferimento (o rimpiazzamento) delle pagine virtuali effettuata, utilizzando il meccanismo di page-fault, da routine del sistema operativo.  Fase di rilocazione di un programma: non necessaria in presenza di memoria virtuale: predisponendo per ogni programma un’opportuna tabella di corrispondenza, la memoria virtuale può risultare sempre disponibile a partire dall’indirizzo 0. G. Frosini Memoria virtuale Slide 9

10 MEMORIA FISICA IN MEMORIA VIRTUALE (1)
per poter essere letta o scritta via software, è sufficiente che si trovi anche in memoria virtuale; è opportuno che la posizione in memoria virtuale sia quella iniziale: indirizzo virtuale e indirizzo fisico di una stessa locazione di memoria fisica hanno lo stesso valore; in tal modo, quando viene attivata la paginazione, si ha continuità nell’indirizzamento (l’indirizzo fisico si ha prima dell’attivazione e l’indirizzo virtuale dopo l’attivazione). Posizionamento della memoria fisica in memoria virtuale: nella tabella di corrispondenza occorre che vi siano descrittori che hanno come indirizzi fisici quelli delle pagine fisiche, con il bit di presenza sempre uguale a 1 (queste pagine non devono essere rimpiazzabili); in memoria virtuale, viene a crearsi una finestra FM attraverso la quale “si vede” la memoria fisica; gli indirizzi virtuale e fisico sono numericamente uguali (la MMU effettua comunque la traduzione). G. Frosini Memoria virtuale Slide 10

11 MEMORIA FISICA IN MEMORIA VIRTUALE (2)
G. Frosini Memoria virtuale Slide 11

12 TRASFERIMENTO DELLE PAGINE IN BUS MASTERING
Trasferimenti delle pagine da o verso la memoria fisica: possono essere effettuati utilizzando, invece che una routine, una funzione PCI che opera in Bus Mastering: in questo caso non è richiesto che la memoria fisica si trovi anche in memoria virtuale. Funzione PCI che opera in Bus Mastering: coinvolge indirizzi fisici (descrittore di buffer: inizializzato con l’indirizzo fisico del primo byte di una pagina); durante il trasferimento, non viene effettuata nessuna traduzione di indirizzo (maggior velocità di operazione); tale possibilità dovuta al fatto che sono coinvolti indirizzi consecutivi, e (all’interno della pagina) la consecutività fisica comporta anche la consecutività virtuale (e viceversa). Routine di page-fault: inizializza la funzione PCI con un indirizzo fisico appropriato; aggiorna la tabella di corrispondenza. G. Frosini Memoria virtuale Slide 12

13 PAGINAZIONE NEL PROCESSORE PC (1)
Meccanismo di paginazione nel processore PC: 4 registri speciali CR0, CR1, CR2 e CR3. Abilitazione della paginazione: messa a 1 del bit PG (PaGing) del registro speciale CR0. Numero massimo delle pagine (virtuali e fisiche): 1 M. Ampiezza di pagina: 4 Kbyte (a=20 e b=12). Tabella di corrispondenza: realizzata in due livelli: direttorio delle pagine e tabelle delle pagine; descrittore (di tabella o di pagina): contiene un bit di presenza P: la MMU, quando effettua la traduzione di indirizzo, se P vale 0 (la tabella delle pagine o la pagina non è presente in memoria fisica), genera un’eccezione (page-fault): in quest’ultimo caso l’indirizzo virtuale che non è stato tradotto viene memorizzato nel registro speciale CR2, e l’indirizzo dell’istruzione attuale (contenuto in EIP) viene memorizzato in pila. G. Frosini Memoria virtuale Slide 13

14 PAGINAZIONE NEL PROCESSORE PC (2)
Direttorio delle pagine: pagina sempre presente in memoria fisica, il cui indirizzo fisico (12 bit meno significativi uguali a 0) si trova nel registro speciale CR3; costituito da 1024 descrittori di tabella (ognuno lungo 4 byte), ciascuno contenente l’indirizzo fisico (su 20 bit) di una tabella delle pagine. Tabella delle pagine: pagina presente o non presente in memoria fisica (a seconda del valore del bit P del descrittore di tabella); costituita da 1024 descrittori di pagina (ognuno lungo 4 byte), ciascuno dei quali contiene l’indirizzo fisico (su 20 bit) di una pagina. Indirizzo virtuale: i 10 bit più significativi individuano un descrittore di tabella (all’interno del direttorio delle pagine); i 10 bit adiacenti individuano un descrittore di pagina (all’interno della tabella delle pagine individuata dal direttorio). G. Frosini Memoria virtuale Slide 14

15 PAGINAZIONE NEL PROCESSORE PC (3)
Direttorio Tab. pagine Indirizzo virtuale 11 12 21 22 31 Indirizzo fisico Descrittore Processore CR3 Memoria fisica ind_pag-0x000 G. Frosini Memoria virtuale Slide 15

16 PAGINAZIONE NEL PROCESSORE PC (4)
Tabella di corrispondenza: paginata e costituita al più da 1K+1 pagine (4 Mbyte + 4 Kbyte); dimensioni effettive in genere inferiori, in quanto nel direttorio alcuni descrittori possono avere permanentemente P=0. Direttorio e tabelle delle pagine: per poter essere modificati via software è sufficiente che risiedano in memoria virtuale; se: il direttorio e le tabelle delle pagine si trovano in memoria virtuale; la memoria fisica si trova in memoria virtuale; è necessario che le tabelle delle pagine risiedano a indirizzi virtuali diversi da quelli in cui risiede la memoria fisica; in tal modo la MMU, quando effettua la traduzione di indirizzo, esamina descrittori di pagina diversi, uno con P che può valere 0 o 1, l'altro con P che vale sempre 1. G. Frosini Memoria virtuale Slide 16

17 PAGINAZIONE NEL PROCESSORE PC (5)
Memoria virtuale: risulta suddivisa in 1024 macropagine (virtuali) MPi, i = 0, …,1023; ciascuna macropagina è costituita da 1024 pagine (virtuali) Pj, j = 0, …,1023. Direttorio: contiene descrittori che, nell’ordine, si riferiscono alle macropagine: il descrittore di indice i individua la tabella delle pagine che riguarda la macropagina MPi; il direttorio è un indice delle macropagine. Tabella delle pagine che riguarda la macropagina MPi: contiene descrittori che, nell’ordine, si riferiscono alle pagine della macropagina MPi : il descrittore di indice j riguarda la pagina Pj di MPi; tale tabella delle pagine è un indice delle pagine di MPi. G. Frosini Memoria virtuale Slide 17

18 PAGINAZIONE NEL PROCESSORE PC (6)
G. Frosini Memoria virtuale Slide 18

19 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE NEL PROCESSORE PC
Posizione del direttorio e tabelle delle pagine in memoria virtuale: deve consentire, dato un qualunque indirizzo virtuale, di trovare facilmente via software il descrittore di tabella delle pagine e il descrittore di pagina appropriati; registro CR3 e descrittori che fanno parte del direttorio: contengono indirizzi fisici e non virtuali; questi indirizzi non possono essere utilizzati via software. Direttorio: può essere posizionato in memoria virtuale in una qualunque macropagina, sia MPA, e di questa in una qualunque pagina, sia PB. Tabelle delle pagine: vengono posizionate in memoria virtuale in un’unica macropagina, sia MPT, nello stesso ordine in cui i corrispondenti descrittori compaiono nel direttorio (anche nello stesso ordine delle macropagine di cui sono tabelle indice): quella indice della macropagina MPi deve essere messa in posizione i. conseguentemente: quella indice della macropagina MPT viene messa in posizione T (è la pagina PT); la pagina PT, in entrate aventi gli stessi indici di quelle del direttorio, ha gli stessi descrittori di tabelle delle pagine che si trovano nel direttorio stesso. G. Frosini Memoria virtuale Slide 19

20 RELAZIONE TRA INDIRIZZO VIRTUALE E DESCRITTORI
Indirizzo virtuale generico: i 10 bit più significativi determinano l’indice i di un descrittore all’interno del direttorio, e anche l’indice i di una tabella delle pagine all’interno di MPT, sia Pi; i 10 bit intermedi determinano l’indice j di un descrittore di pagina all’interno di Pi. G. Frosini Memoria virtuale Slide 20

21 ESEMPIO DI POSIZIONAMENTO (1)
memoria virtuale composta da 4 macropagine (0, 1, 2 e 3); ciascuna macropagina composta da 4 pagine (0, 1, 2 e 3); ciascuna pagina può contenere 4 descrittori (0, 1, 2 e 3). Direttorio: posizionato nella macropagina 2, pagina 3; per questo posizionamento si considera la tabella delle pagine puntata dal descrittore 2 del direttorio, e in essa si aggiusta il descrittore 3. Tabelle delle pagine (4 tabelle): posizionate nella macropagina 3; per questo posizionamento si considera la tabella delle pagine puntata dal descrittore 3 del direttorio, e in essa si aggiustano tutti i 4 descrittori. Aggiustamenti necessari: danno luogo a collegamenti aggiuntivi (indicati con linee tratteggiate). G. Frosini Memoria virtuale Slide 21

22 ESEMPIO DI POSIZIONAMENTO (2)
G. Frosini Memoria virtuale Slide 22

23 G. Frosini Memoria virtuale Slide 23
TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA E RIMPIAZZAMENTO DI PAGINA (1) Routine di page-fault: mancanza di pagina: deve trasferire la pagina mancante in memoria fisica; deve "agganciarla" (nel suo descrittore, deve modificare il bit P e il campo indirizzo); il descrittore coinvolto, che si trova in una tabella delle pagine, viene individuato a partire dall'indirizzo virtuale non tradotto contenuto in CR2. Routine di page-fault: rimpiazzamento, che coinvolge una pagina vittima: deve effettuare un preliminare trasferimento di una pagina in memoria di massa (pagina vittima); deve "sganciarla" (nel suo descrittore, deve modificare il bit P e il campo indirizzo); il descrittore coinvolto, che si trova in una tabella delle pagine, viene individuato a partire dall'indirizzo virtuale della pagina vittima. G. Frosini Memoria virtuale Slide 23

24 G. Frosini Memoria virtuale Slide 24
TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA E RIMPIAZZAMENTO DI PAGINA (2) Individuazione del descrittore da modificare: per individuare quale descrittore di pagina modificare, dato l’indirizzo virtuale non tradotto (contenuto di CR2) o l’indirizzo della pagina vittima, sia in entrambi i casi indv, si opera come indicato precedentemente, ossia: si utilizzano i 10 bit più significativi di indv come indice i, per individuare una delle 2**10 tabelle delle pagine nella macropagina MPT; si utilizzano i successivi 10 bit di indv come indice j per selezionare un'entrata della tabella delle pagine individuata al punto precedente, che contiene il descrittore cercato; i punti precedenti sono equivalenti al seguente: utilizza i 20 bit più significativi di indv per accedere a un'entrata di un'unica tabella di corrispondenza che si trova in MPT di 2**20 entrate. G. Frosini Memoria virtuale Slide 24

25 G. Frosini Memoria virtuale Slide 25
TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (1) Descrittore da modificare nel direttorio per l’aggancio di tabella delle pagine: indirizzo virtuale non tradotto contenuto di CR2: rappresenta l’indirizzo virtuale di una pagina indirizzata dalla tabella; dieci bit più significativi di CR2: costituiscono un indice i che individua il descrittore da modificare all’interno del direttorio; indirizzo virtuale di tale descrittore: macropagina di indice A, pagina di indice B, indice i. Essendo la tabella delle pagine in memoria virtuale, esiste un altro descrittore da modificare per l’aggancio della tabella delle pagine stessa: si trova nella macropagina MPT, pagina PT (tabella indice della macropagina MPT); individuato a partire dall’indirizzo virtuale di tale tabella delle pagine. G. Frosini Memoria virtuale Slide 25

26 G. Frosini Memoria virtuale Slide 26
TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (2) Indirizzo virtuale di una tabella delle pagine: nella macropagina MPT, le tabelle delle pagine sono nello stesso ordine dei loro descrittori nel direttorio; l’ indirizzo virtuale indv_tab_i della tabella delle pagine corrispondente al descrittore i-mo del direttorio è dato da indice di macropagina T, indice di pagina i. Descrittore da modificare nella macropagina MPT, Pagina PT: quello il cui indice è dato dai 10 bit intermedi ind_tab_i, ossia i. osservazione: il contenuto di CR2 è l’indirizzo virtuale di una pagina indirizzata dalla tabella delle pagine, e non è indv_tab_i; tuttavia, anche indv_tab_i può essere ricavato dal contenuto di CR2. G. Frosini Memoria virtuale Slide 26

27 G. Frosini Memoria virtuale Slide 27
TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (2) G. Frosini Memoria virtuale Slide 27

28 COINCIDENZA TRA DIRETTORIO E TABELLA INDICE DI MPT (1)
Ricordare: il direttorio e la tabella indice di MPT contengono, in posizione corrispondente, lo stesso descrittore (puntano ad una stessa tabella indice). Conseguenza: il direttorio (non avendo vincoli di posizionamento) può essere fatto coincidere con la tabella indice di MPT, nello spazio virtuale e nello spazio fisico; l'entrata del direttorio che punta alla tabella indice di MPT punta al direttorio stesso; in tal modo, un descrittore presente nel direttorio è contemporaneamente un descrittore di tabella delle pagine e un descrittore di pagina contenente una tabella delle pagine. In caso di coincidenza: l’intera tabella di corrispondenza diviene di 4 Mbyte; per "sganciare" e "agganciare" una tabella delle pagine occorre modificare un solo descrittore ( i due descrittori da modificare coincidono). G. Frosini Memoria virtuale Slide 28

29 COINCIDENZA TRA DIRETTORIO E TABELLA INDICE DI MPT (2)
G. Frosini Memoria virtuale Slide 29

30 MEMORIA FISICA E TABELLA
Memoria fisica in memoria virtuale: non è opportuno porre anche la tabella di corrispondenza in memoria virtuale (anch’essa occupa spazio virtuale). Indirizzi virtuali delle tabelle di corrispondenza: indirizzi virtuali del direttorio e delle tabelle delle pagine presenti: numericamente coincidenti con quelli fisici; indirizzo virtuale del direttorio: numericamente uguale all’indirizzo fisico contenuto di CR3; indirizzo virtuale di una tabella delle pagine presente: numericamente uguale all’indirizzo fisico contenuto in un descrittore presente nel direttorio. Routine di page-fault: compie lo stesso percorso della MMU; in grado di effettuare "sgancio" (a partire dall’indirizzo virtuale della vittima) e "aggancio" (a partire dall’indirizzo virtuale contenuto in CR2): dato un indirizzo virtuale, i 10 bit più significativi individuano un descrittore nel direttorio, e i 10 bit intermedi un descrittore nella tabella delle pagine selezionata. G. Frosini Memoria virtuale Slide 30

31 MEMORIA FISICA IN MEMORIA VIRTUALE
G. Frosini Memoria virtuale Slide 31

32 FORMA DI UN DESCRITTORE (1)
Descrittore di pagina (nel direttorio delle pagine per una tabella delle pagine, o in una tabella delle pagine per una pagina vera e propria): G. Frosini Memoria virtuale Slide 32

33 FORMA DI UN DESCRITTORE (2)
Campo indirizzo: specifica l’indirizzo fisico (della tabella delle pagine o della pagina). Byte di accesso: bit di presenza P, due bit utili per il rimpiazzamento (A e D), due bit per la gestione della memoria cache (PCD e PWT), due bit per la protezione (S/U e R/W). Bit A (Accessed) e D (Dirty): posti a 1 dalla MMU, rispettivamente, ogni qual volta avviene una accesso alla pagina (traduzione di indirizzo), o un accesso in scrittura. Bit PCD (Page Cache Disable) e PWT (Page Write Through): specificano, rispettivamente, se per quella pagina la memoria cache deve essere disabilitata (determinando lo stato di un apposito piedino CD del processore), e se per quella pagina la memoria cache deve essere gestita in modalità write-through (determinando lo stato di un apposito piedino WT del processore). G. Frosini Memoria virtuale Slide 33

34 FORMA DI UN DESCRITTORE (3)
Bit S/U (System/User) e R/W (Read/Write): specificano, rispettivamente, il livello di privilegio della pagina (System = 0, User = 1), e se la pagina è solo leggibile (Read = 0) o anche scrivibile (Write = 1). Descrittori di tabelle delle pagine (che si trovano nel direttorio delle pagine): sono significativi solo i bit A e P; i bit PCD e PWT non vengono utilizzati perché la memoria cache riguarda solo le pagine; il bit D non è significativo; i bit S/U e R/W contengono informazioni globali sulle tabelle delle pagine indirizzate: S/U: se in qualche tabella delle pagine indirizzata S/U vale 1 (User), allora vale 1; R/W: se in qualche tabella delle pagine indirizzata R/W vale 1 (Write), allora vale 1. Modifiche software a una tabella delle pagine TP: TP deve trovarsi in memoria virtuale; non viene gestito dalla MMU il bit D del descrittore di TP che si trova nel direttorio; viene gestito dalla MMU il bit D del descrittore di pagina che si trova nella tabella delle pagine che pone TP in memoria virtuale. G. Frosini Memoria virtuale Slide 34

35 CAMPO INDIRIZZO DI UN DESCRITTORE
Tabella delle pagine o pagina non presente: bit P uguale a 0; campo indirizzo (20 bit): contiene informazioni che individuano la tabella delle pagine o la pagina in memoria di massa. Indirizzo di una pagina in memoria di massa: nel descrittore, può occupare i 20 bit del campo indirizzo, i 4 bit liberi e alcuni altri bit del byte di accesso (tipicamente 3, il bit non utilizzato, il bit A e il bit D), per un totale di 27 bit; questa informazione viene utilizzata dalla routine di page-fault per reperire dalla memoria di massa la tabella delle pagine mancante o la pagina mancante. G. Frosini Memoria virtuale Slide 35

36 G. Frosini Memoria virtuale Slide 36
FINESTRA FM Funzioni della finestra FM: 1) consentire l’accesso alla parte di memoria contenente le strutture dati e le routine di nucleo; 2) consentire l’accesso alle tabelle di corrispondenza; 3) gestire il trasferimento delle pagine utente. La finestra FM occupa spazio di indirizzamento virtuale: conveniente limitarne le dimensioni; mappare nella finestra solo quella parte della memoria fisica che consente di soddisfare la funzione di cui al punto 1); funzione di cui al punto 2): può essere ottenuta anche posizionando le tabelle di corrispondenza in memoria virtuale; funzione di cui al punto 3): può essere ottenuta anche utilizzando una funzione PCI che opera in Bus Mastering. G. Frosini Memoria virtuale Slide 36

37 TRASFERIMENTO DELLE PAGINE
Situazione iniziale: sono presenti in memoria fisica solo il direttorio e alcune tabelle delle pagine, le quali consentono di posizionare in memoria virtuale alcune entità iniziali (come il direttorio e alcune tabelle delle pagine, oppure la finestra FM). Trasferimento da memoria di massa a memoria fisica di una nuova tabella delle pagine o di una pagina: avviene su domanda del programma, ossia quando viene generato un indirizzo che genera un page-fault. G. Frosini Memoria virtuale Slide 37

38 G. Frosini Memoria virtuale Slide 38
RIMPIAZZAMENTO (1) Quando si ha necessità di avere un rimpiazzamento: la routine sceglie la pagina da trasferire da memoria fisica a memoria di massa in base al valore di variabili associate alla rispettive pagine, che contengono una determinata statistica di utilizzo; tipicamente, o la pagina meno frequentemente utilizzata (LFU: Least Frequently Used) o quella non riferita da più tempo (LRU: Least Recently Used); la routine rimpiazza la pagina la cui variabile associata ha il valore minimo; se viene selezionata una pagina che non è stata modificata (D = 0), questa non viene ricopiata nella memoria di massa (la copia esistente è valida). Statistica di utilizzo delle pagine: si basa su un meccanismo che coinvolge il bit A; al verificarsi di certi eventi (per esempio, eventi temporali (ciclicamente) o eventi legati al page-fault) va in esecuzione una routine per le statistiche che esamina il bit A di ogni descrittore, effettua la statistica appropriata e quindi riporta tale bit a zero. G. Frosini Memoria virtuale Slide 38

39 G. Frosini Memoria virtuale Slide 39
RIMPIAZZAMENTO (2) Frequenza di utilizzo delle pagine: si associa ad ogni pagina una variabile contatore: la routine per le statistiche incrementa la variabile per quelle pagine per le quali il bit A vale 1. Pagina non riferita da più tempo: si associa ad ogni pagina una variabile registro a scorrimento: la routine per le statistiche inserisce nella variabile (nella posizione più significativa) il valore del bit A. Variabile associata a una tabella delle pagine: non può mai avere un valore inferiore rispetto a quello delle variabili associate alle pagine riferite dalla tabella delle pagine stessa: la routine di page-fault, a parità di condizioni, sceglie una pagina e non una tabella delle pagine. Nota: nell’intervallo di tempo intercorrente tra un’esecuzione della routine per le statistiche e l’esecuzione successiva, più accessi a una pagina o a una tabella vengono sempre equiparati ad un unico accesso (la statistica è approssimata). G. Frosini Memoria virtuale Slide 39

40 RIMPIAZZAMENTO DI TABELLE DELLE PAGINE
Selezione, per il rimpiazzamento, di una tabella delle pagine: non viene mai ricopiata in memoria di massa (caso semplice); vengono così perdute eventuali modifiche hardware o software; questo fatto non produce alcun danno: nel momento in cui una tabella delle pagine viene trasferita di nuovo dalla memoria di massa in memoria fisica, non vi sono ancora in memoria fisica pagine da essa riferite; per ogni descrittore presente nella tabella delle pagine: nel byte di accesso, i bit P, A e D valgono 0 (come la copia esistente in memoria di massa); il campo indirizzo contiene l’indirizzo della pagina in memoria di massa (come la copia esistente in memoria di massa). G. Frosini Memoria virtuale Slide 40

41 DESCRITTORI DI PAGINA FISICA (1)
Memoria fisica: una parte (parte M1) memorizza routine e strutture dati del sistema operativo; una parte (parte M2, costituita da pagine fisiche contenenti 1) direttorio, 2) tabelle delle pagine presenti, e 3) pagine virtuali utente presenti; può essere vista come un array di pagine fisiche, avente un indirizzo iniziale. Parte M1 della memoria fisica: risiede necessariamente in memoria virtuale, per consentire a un programma di eseguire le routine di nucleo; risiede permanentemente in memoria fisica. Parte M2 della memoria: vista come un array di pagine fisiche; comunemente, risiede anche in memoria virtuale; il direttorio, alcune tabelle delle pagine e alcune pagine risiedono permanentemente in memoria fisica, mentre altre tabelle delle pagine e altre pagine sono soggette a rimpiazzamento. Gestione dell'array di pagine fisiche M2: comunemente, mediante un array di descrittori di pagina fisica (incluso nella parte M1). Uguaglianza degli indici dei due array (di pagine fisiche e di descrittori di pagina fisica). G. Frosini Memoria virtuale Slide 41

42 DESCRITTORI DI PAGINA FISICA (2)
Descrittore di pagina fisica: struttura dati manipolata unicamente via software; specifica se la pagina fisica è libera, oppure se contiene un direttorio, una tabella delle pagine o una pagina utente. Pagina fisica F occupata da una pagina virtuale V: il descrittore contiene anche: un campo residente (specifica se V è rimpiazzabile o meno); un campo contatore (contiene il contatore o il registro a scorrimento per le statistiche relativa a V); un campo ind_virtuale contenente l'indirizzo virtuale di V; un campo ind_massa contenente l'indirizzo di V in memoria di massa; ind_virtuale: serve a trovare il descrittore di V per effettuare lo “sgancio”; ind_massa: nello “sgancio”, sostituisce il campo “indirizzo fisico” del descrittore di V. G. Frosini Memoria virtuale Slide 42

43 DESCRITTORI DI PAGINA FISICA (3)
Pagina fisica F occupata da una tabella delle pagine T: l’indirizzo virtuale si riferisce a una pagina indirizzata dalla tabella stessa; di questo vengono considerati solo i 10 bit più significativi, che costituiscono l’indice all’interno del direttorio. Pagina fisica F occupata da un direttorio: il descrittore di pagina fisica non contiene altre informazioni; tali descrittori vengono esaminati solo dalla routine per le statistiche. Corrispondenza utilizzata (noto l’indirizzo iniziale di M2 e la dimensione di una pagina fisica, l’indirizzo dell’array dei descrittori di pagina fisica e la dimensione di un descrittore di pagina fisica); dato un indirizzo fisico di pagina, si ricava il corrispondente indirizzo del descrittore di pagina fisica; dato un indirizzo di descrittore di pagina fisica, si ricava il corrispondente indirizzo fisico di pagina. G. Frosini Memoria virtuale Slide 43

44 ROUTINE DI PAGE-FAULT (1)
Routine di page-fault per rimpiazzamento di pagina: seleziona un descrittore di pagina fisica libera, ovvero il descrittore della pagina fisica contenente la pagina virtuale vittima (DPF); dall’indirizzo di DPF, ricava l'indirizzo fisico F della corrispondente pagina fisica; ricopia (eventualmente) in memoria di massa il contenuto di F; azioni di “sgancio”: il descrittore della pagina (virtuale) vittima, sia desv_vittima, viene individuato utilizzando il campo ind_virtuale di DPF; in desv_vittima vengono modificati il bit P e la componente "indirizzo fisico", sostituendo l'indirizzo fisico F con l'indirizzo in memoria di massa specificato dal campo ind_massa di DPF. G. Frosini Memoria virtuale Slide 44

45 ROUTINE DI PAGE-FAULT (2)
azioni di aggiornamento del descrittore di pagina fisica DPF (effettuate alla fine dello “sgancio”, prima dell’“aggancio”): modifica del campo ind_virtuale, con il contenuto di CR2; utilizzo del nuovo ind_virtuale per trovare il descrittore di pagina (virtuale) mancante, sia desv_mancante; modifica del campo ind_massa, con il valore prelevato da desv_mancante. ricopia nella pagina fisica F la pagina virtuale mancante; azioni di “aggancio”: nel descrittore di pagina (virtuale) desv_mancante vengono modificati il bit P e la componente "indirizzo", sostituendo l'indirizzo della pagina in memoria di massa ind_massa con l'indirizzo F. G. Frosini Memoria virtuale Slide 45

46 SCHEMA DELLE OPERAZIONI SUI DESCRITTORI
G. Frosini Memoria virtuale Slide 46

47 ROUTINE PER LE STATISTICHE
La routine per le statistiche può operare nel seguente modo: scorre tutti i descrittori di pagina fisica, e per ogni descrittore che specifica che il contenuto è un direttorio o una tabella delle pagine: scorre tutti i 1024 descrittori; per ogni descrittore di pagina o di tabella delle pagine presente, esamina e riporta a 0 il bit A; dal campo indirizzo del descrittore stesso (contenente l'indirizzo fisico della tabella delle pagine o della pagina) risale all’indirizzo del descrittore di pagina fisica (quindi, al descrittore di pagina fisica) e in questo aggiorna la statistica. G. Frosini Memoria virtuale Slide 47

48 BUFFER DEI DESCRITTORI DI PAGINA (1)
Meccanismo di corrispondenza tra indirizzo virtuale e indirizzo fisico: richiede due accessi in memoria fisica (al direttorio delle pagine e a una tabella delle pagine); comporta un tempo inaccettabilmente lungo. Buffer interno (TLB: Translation Lookaside Buffer); funge da memoria cache dei descrittori di pagina (non dei descrittori di tabella delle pagine) ; memorizza i descrittori di pagina utilizzati più di recente; la MMU, nel tradurre un indirizzo da virtuale a fisico, prima accede al TLB, e, in caso di fallimento, al direttorio e alla tabella delle pagine coinvolta. G. Frosini Memoria virtuale Slide 48

49 BUFFER DEI DESCRITTORI DI PAGINA (2)
Translation Lookaside Buffer : associativo a insiemi; costituito da otto insiemi, ciascuno dei quali ha un campo R e quattro gruppi: ogni gruppo ha un campo Ti (Tag) e un campo Di (Dati); composto da tre banchi di memoria, ciascuno di otto righe: ogni riga contiene per il primo banco il campo R, per il secondo banco i quattro campi Tag e per il terzo banco i quattro campi Dati. MMU: considera l’indirizzo virtuale di pagina (20 bit) suddiviso in due componenti, un’etichetta E (i 17 bit più significativi) e un indice I (i 3 bit meno significativi); l’indice seleziona l’insieme all’interno del TLB; l’etichetta E è destinata a essere confrontata con le etichette Ec presenti in ognuno dei 4 campi Tag dell’insieme selezionato. G. Frosini Memoria virtuale Slide 49

50 BUFFER DEI DESCRITTORI DI PAGINA (3)
G. Frosini Memoria virtuale Slide 50

51 BUFFER DEI DESCRITTORI DI PAGINA (4)
Campo Tag di ciascun blocco (T1, T2, T3 e T4): contiene il bit di validità V, l’etichetta Ec, il bit D, i bit S/U e R/W; produce successo se: V vale 1; E è uguale a Ec; D vale 0 e l’accesso è in lettura, oppure D vale 1 (l’accesso può essere qualunque); sono soddisfatte le regole di protezione (bit S/U e R/W di valore opportuno). Campo dati di ciascun blocco (D1, D2, D3 e D4): contiene l’indirizzo fisico della pagina e i bit PCD e PWT. Successo per un blocco: prelievo del campo dati di quel blocco. Memoria riferita tramite TLB: 32 pagine, 128 Kbyte di memoria; stime attendibili: nel 98-99% dei casi la MMU trova direttamente nel buffer le informazioni di corrispondenza. Descrittori presenti nel TLB: nelle tabelle delle pagine hanno il bit A uguale a 1. G. Frosini Memoria virtuale Slide 51

52 BUFFER DEI DESCRITTORI DI PAGINA (5)
Fallimento di un blocco per cui V vale 1 e si ha coincidenza di etichette: se il fallimento è dovuto a valori non appropriati dei bit S/U e R/W, viene generata una eccezione di protezione; se il fallimento è dovuto a un valore non appropriato del bit D, avviene 1) un accesso in memoria alla tabella delle pagine, 2) la modifica del bit D, e 3) il trasferimento del descrittore modificato nella stessa posizione del TLB: l’aggiornamento del bit D non avviene direttamente nel TLB, in quanto la routine di page-fault esamina il bit D solo nella tabella delle pagine coinvolta (non può accedere al TLB perché non esistono istruzioni). Fallimento di tutti i blocchi per V uguale a 0 o per non coincidenza di etichette: se esiste almeno un blocco per cui V vale 0, avviene un accesso in memoria alla tabella delle pagine e il trasferimento del descrittore in quel blocco; se per tutti i blocchi V vale 1 e non si ha uguaglianza tra etichette, avviene un accesso in memoria alla tabella delle pagine e il trasferimento del descrittore nel blocco identificato dal campo R. G. Frosini Memoria virtuale Slide 52

53 BUFFER DEI DESCRITTORI DI PAGINA (6)
Modifica (via software), in una tabella delle pagine, di un descrittore di pagina presente anche nel TLB: il gruppo del TLB che contiene il descrittore deve essere invalidato; esempio: pagina trasferita in memoria di massa (modifica dei campi P e indirizzo). istruzione INVLPG (INVaLidate PaGe): richiede la specifica dell’indirizzo virtuale della pagina; provoca l’invalidazione del blocco, nell’insieme selezionato, in cui E è uguale a Ec; ulteriore motivo che giustifica la presenza di ind_virtuale nei descrittori di pagina fisica. Modifica che interessa tutti i descrittori presenti nel TLB: occorre invalidare il contenuto di tutto il TLB; esempio: la routine per le statistiche esamina ogni descrittore di pagina, e se il bit A vale 1 lo riporta a 0; tutti i descrittori di pagina presenti nel TLB hanno (nelle tabelle delle pagine) il bit A uguale a 1; questo si ottiene con una scrittura nel registro CR3 (eventualmente riscrivendoci la stessa quantità già presente nel registro stesso). G. Frosini Memoria virtuale Slide 53

54 RIMPIAZZAMENTO NEL TLB
Algoritmo di rimpiazzamento: pseudo LRU (segue la regola LRU in modo non preciso). Campo R di 3 bit, B0, B1 e B2: viene esaminato in caso di fallimento per tutti i 4 blocchi, con V uguale a 1 e non uguaglianza tra etichette; avviene la sostituzione di uno dei blocchi, siano L0, L1, L2 o L3, in base alla seguente regola: B0 uguale a 0 (L0 o L1 non riferiti da più tempo): se B1 vale 0 (L0 non riferito da più tempo), allora sostituire L0; se B1 vale 1 (L1 non riferito da più tempo), allora sostituire L1. B0 uguale a 1 (L2 o L3 non riferiti da più tempo): se B2 vale 0 (L2 non riferito da più tempo), allora sostituire L2; se B2 vale 1 (L3 non riferito da più tempo), allora sostituire L3. G. Frosini Memoria virtuale Slide 54

55 AGGIORNAMENTO DEL CAMPO R
Il campo R viene aggiornato ogni volta che un blocco produce successo o subisce rimpiazzamento. Successo (non ha rilevanza quanto valeva R): B0 viene forzato a 1 se l’accesso interessa L0 o L1, a 0 se l’accesso interessa L2 o L3; B1 viene forzato a 1 se l’accesso interessa L0, a 0 se l’accesso interessa L1 (altrimenti non viene modificato); B2 viene forzato a 1 se l'accesso interessa L2, a 1 se l'accesso interessa L3 (altrimenti non viene modificato). Rimpiazzamento (ha rilevanza quanto valeva R): B0 cambia valore; B1 cambia valore se B0 valeva 0; B2 cambia valore se B0 valeva 1. L’algoritmo non è precisamente un LRU: la sostituzione interessa a turno L0 o L1, oppure L2 o L3. G. Frosini Memoria virtuale Slide 55

56 TRASFERIMENTI IN BUS MASTERING
Funzione che opera in Bus Mastering: gestisce descrittori di buffer che contengono indirizzi fisici. Routine che inizializza un descrittore di buffer: deve essere in grado di accedere alle tabelle delle pagine, per poter prelevare indirizzi fisici. Pagine coinvolte nel Bus Mastering: devono risiedere in memoria fisica per tutta l’operazione, e quindi non possono essere soggette al meccanismo di rimpiazzamento; i descrittori di pagina fisica in cui risiedono devono avere il campo residente che specifica “vero”. G. Frosini Memoria virtuale Slide 56


Scaricare ppt "G. Frosini Memoria virtuale Slide 1"

Presentazioni simili


Annunci Google