MEMORIA VIRTUALE. G. Frosini Memoria virtuale Slide 1

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

SOLUZIONI: Memoria virtuale

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

Introduzione alle gerarchie di memoria

Sistemi operativi e distribuiti

Fallimenti nella TLB

Esercitazione su Gerarchie di Memoria

Calcolatori Elettronici

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

GESTIONE DELLA MEMORIA CENTRALE

Struttura delle memorie cache

Memoria Virtuale e I/O

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

Gestione della Memoria

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

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

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

La gerarchia delle memorie

Esercitazione su Gerarchie di Memoria

Gestione della memoria

Cache: 1 livello della gerarchia di memoria

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

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

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

static dynamic random access memory

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

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

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

Corso di Informatica

Esercizio: memoria virtuale

Gestione della memoria

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1

Memoria cache, interrupt e DMA

Il Sistema Operativo. Informatica Sistema Operativo 1

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Matlab/Octave - Esercitazione 13

Componenti e connessioni. Capitolo 3

Gerarchie di memoria Memorie a componenti dinamici 1

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

Struttura interna del sistema operativo Linux

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

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

Sottosistemi ed Architetture Memorie

I formati delle istruzioni

Calcolo prestazioni cache (1)

CAP9. Device drivers

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Esame di INFORMATICA Lezione 4

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Gli attori principali di un architettura

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Architettura degli elaboratori - 2 -

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

Architettura hardware

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Architettura di un processore basato su registri generali.

Sistemi Operativi Gestione della Memoria (parte 2)

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

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

Descrivere i vantaggi di un sistema a memoria virtuale

Simuliamo ora il funzionamento di LRU sulla reference string data:

LA GESTIONE DELLA I/O

Esercizio: memoria virtuale

Università degli Studi di Cassino e del Lazio Meridionale

Memoria Cache. La memoria cache

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

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

Struttura dell elaboratore elettronico

Modi di esecuzione user / kernel

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

memoria virtuale protezione

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi Esercizi Gestione Memoria

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Il software: Istruzioni per il computer

Architettura dei computer

Elaborazione dell informazione

Memoria virtuale (seconda parte)

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

Capitolo 5 Elementi architetturali di base

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

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

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

Struttura Logica del S.O:

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Riprendiamo l esercizio calcolatrice

Corso di Calcolatori Elettronici I A.A Le memorie Lezione 16

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1

File System ext2. Struttura del filesystem ext2.

Nel microprocessore 8086 abbiamo una gran quantità di registri

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE

Lezione n.14. La memoria cache

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

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

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base

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

Transcript:

MEMORIA VIRTUALE G. Frosini Memoria virtuale Slide 1

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

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

PAGINAZIONE (2) Memoria virtuale Memoria fisica Tabella... Memoria di massa G. Frosini Memoria virtuale Slide 4

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

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

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

TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE Tabella di corrispondenza: 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. Memoria virtuale Memoria fisica... Tabella di corrispondenza Tabella di corrispondenza G. Frosini Memoria virtuale Slide 8

MEMORIA VIRTUALE E RILOCAZIONE Memoria virtuale: 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

MEMORIA FISICA IN MEMORIA VIRTUALE (1) Memoria fisica: 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

MEMORIA FISICA IN MEMORIA VIRTUALE (2) Memoria virtuale Memoria fisica Memoria fisica tabella di corrispondenza it l G. Frosini Memoria virtuale Slide 11

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

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

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

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

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

PAGINAZIONE NEL PROCESSORE PC (5) Memoria virtuale: risulta suddivisa in 1024 macropagine (virtuali) MPi, i = 0,,1023; Direttorio: ciascuna macropagina è costituita da 1024 pagine (virtuali) Pj, j = 0,,1023. 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

PAGINAZIONE NEL PROCESSORE PC (6) Memoria virtuale Memoria fisica MP0 P0... descrittore 0 Direttorio... P1023 descrittore 1023... Tabella delle pagine indice di MP0... descrittore 0 descrittore 1023 P0 Pagina fisica corrispondente a MP0, P1023 MP1023... P1023 G. Frosini Memoria virtuale Slide 18

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

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. 1) Indirizzo virtuale generico indice i di macropagina indice j di pagina indice di riga 2) Indirizzo virtuale del descrittore nel direttorio indice A di macropagina indice B di pagina (direttorio) indice i di descrittore 00 3) Indirizzo virtuale del descrittore in una tabella delle pagine indice T di macropagina indice i di tabella delle pagine indice j di descrittore 00 G. Frosini Memoria virtuale Slide 20

ESEMPIO DI POSIZIONAMENTO (1) Esempio 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

ESEMPIO DI POSIZIONAMENTO (2) Memoria virtuale Memoria fisica MP2 direttorio direttorio tab. pag. (MP0) tab. pag. (MP0) tab. pag. (MP1) MP3 tab. pag. (MP1) tab. pag. (MP2) tab. pag. (MP3) tab. pag. (MP2) tab. pag.(mp3) G. Frosini Memoria virtuale Slide 22

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

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

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. Esiste un altro descrittore da modificare per l aggancio di tabella delle pagine : quello che pone la tabella delle pagine in memoria virtuale, che 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

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: anche il precedente descrittore può essere direttamente individuato dal contenuto di CR2. G. Frosini Memoria virtuale Slide 26

TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (2) Contenuto di CR2 indice i di macropagina indice j di pagina indice di riga 1) Indirizzo virtuale del descrittore indice A di indice i di nel direttorio Indice B di macropagina descrittore 00 pagina Indirizzo virtuale della tabella delle pagine mancante indice T di macropagina indice i di tabella delle pagine indice di riga 2) Indirizzo virtuale del descrittore nella macropagina MPT, pagina PT indice T di macropagina indice T di tabella delle pagine indice i di descrittore 00 G. Frosini Memoria virtuale Slide 27

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

COINCIDENZA TRA DIRETTORIO E TABELLA INDICE DI MPT (2) Memoria virtuale Memoria fisica tab. pag. (MP0) tab. pag (MP1022) MP1023 tab. pag. (MP1022) direttorio e tab. pag (MP1023) direttorio e tab. pag. (MP1023) G. Frosini Memoria virtuale Slide 29

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: indirizzo fisico contenuto di CR3; indirizzo virtuale di una tabella delle pagine presente: 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 i 10 bit intermedi un descrittore nella tabella delle pagine selezionata. G. Frosini Memoria virtuale Slide 30

MEMORIA FISICA IN MEMORIA VIRTUALE Memoria virtuale tab. pag. (MP1) Memoria fisica 1 macropagina Direttorio (residente) tab. pag. (MP1) Finestra FM MP0 Direttorio (residente) tab. pag. (MP0) (residente) Contenitore tab. pag. (MP0) (residente) Contenitore Contenuto Contenuto MP1 G. Frosini Memoria virtuale Slide 31

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): 31 12 7 0 indirizzo accesso D A PCD PWT S/U R/W P G. Frosini Memoria virtuale Slide 32

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

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

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

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

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

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

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

RIMPIAZZAMENTO DI TABELLE DELLE PAGINE Selezione, per il rimpiazzamento, di una tabella delle pagine: facciamo l ipotesi semplificativa che non venga mai ricopiata in memoria di massa; 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

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. Parte M2 della memoria: potrebbe risiedere o meno in memoria virtuale; se non risiede in memoria virtuale, possiamo avere: il direttorio e le tabelle delle pagine in memoria virtuale; il rimpiazzamento delle pagine utente effettuato in DMA (Bus mastering). 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

DESCRITTORI DI PAGINA FISICA (2) Descrittore di pagina fisica: struttura dati manipolata unicamente via software; specifica se la pagina fisica è libera, oppure 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

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

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

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

SCHEMA DELLE OPERAZIONI SUI DESCRITTORI CR2 Descrittore della pagina virtuale vittima (individuato da ind_virtuale presente nel DPF Descrittore della pagina virtuale che ha prodotto page-fault individuato da ind_virtuale nuovo (CR2) 1) ind_fisico F P ind_massa P 3) Descrittore della pagina fisica contenente la pagina vittima ( in corrispondenza con ind_fisico F )... ind_virtuale ind_massa... 2) DPF G. Frosini Memoria virtuale Slide 46

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

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

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

BUFFER DEI DESCRITTORI DI PAGINA (3) Indirizzo virtuale 31 12 11 0 19 E 3 2 I 0 R T1 T2 T3 T4 D1 D2 D3 D4 Indirizzo fisico G. Frosini Memoria virtuale Slide 50

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

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

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

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

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

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