MEMORIA VIRTUALE. G. Frosini Memoria virtuale Slide 1
|
|
- Leonzio Lanza
- 6 anni fa
- Visualizzazioni
Transcript
1 MEMORIA VIRTUALE G. Frosini Memoria virtuale Slide 1
2 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
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 PAGINAZIONE (2) Memoria virtuale Memoria fisica Tabella... Memoria di massa G. Frosini Memoria virtuale Slide 4
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 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 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 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
9 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
10 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
11 MEMORIA FISICA IN MEMORIA VIRTUALE (2) Memoria virtuale Memoria fisica Memoria fisica tabella di corrispondenza it l 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) Processore Memoria fisica CR3 Direttorio Indirizzo fisico Descrittore ind_pag-0x Tab. pagine Descrittore Indirizzo virtuale 0 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; 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
18 PAGINAZIONE NEL PROCESSORE PC (6) Memoria virtuale Memoria fisica MP0 P0... descrittore 0 Direttorio... P1023 descrittore Tabella delle pagine indice di MP0... descrittore 0 descrittore 1023 P0 Pagina fisica corrispondente a MP0, P1023 MP P1023 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 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. 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
21 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
22 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
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 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 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
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: anche il precedente descrittore può essere direttamente individuato dal contenuto di CR2. G. Frosini Memoria virtuale Slide 26
27 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
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 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
29 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
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: 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
31 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
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): indirizzo accesso D A PCD PWT S/U R/W P 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 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
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 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 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
40 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
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. 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
42 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
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 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
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: 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
50 BUFFER DEI DESCRITTORI DI PAGINA (3) Indirizzo virtuale E 3 2 I 0 R T1 T2 T3 T4 D1 D2 D3 D4 Indirizzo fisico 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
MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:
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
DettagliSOLUZIONI: Memoria virtuale
SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi
DettagliSOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:
SRIZIO Segmentazione In un sistema che gestisce la memoria con spazio logico suddiviso in segmento codice e segmento dati (comprensivo della pila) e caricamento in partizioni variabili con rilocazione
DettagliIntroduzione alle gerarchie di memoria
Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file
DettagliSistemi operativi e distribuiti
Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento
DettagliFallimenti nella TLB
Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente
DettagliEsercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
DettagliCalcolatori Elettronici
Calcolatori Elettronici La memoria gerarchica La cache: come migliorare le prestazioni Ricapitolando (1) La memoria principale e la cache sono scomposte in blocchi di uguale dimensione L indirizzo del
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 205-6 Pietro Frasca Lezione 3 Martedì 7--205 Paginazione su richiesta Con la tecnica della paginazione
DettagliGESTIONE DELLA MEMORIA CENTRALE
GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:
DettagliStruttura delle memorie cache
Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24
DettagliMemoria Virtuale e I/O
Memoria Virtuale e I/O Paolo Baldan Baldan@dsi.unive.it Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie
DettagliLa memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni
La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo
DettagliGestione della Memoria
Gestione della Memoria Informatica B Il modello della memoria 2 E un modello lineare La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M Il numero che identifica ogni cella è detto
DettagliIntroduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1
Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti
Dettagli8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache
Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene
Dettagli06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità
Sistema di Memoria Caratteristiche desiderabili Ampia capacità Velocità Economicità 1 Memoria Cache L'idea alla base della memoria cache nasce dalla semplice osservazione che la memoria centrale (dove
DettagliLa gerarchia delle memorie
La gerarchia delle memorie Gestione della memoria Ogni processo, per avanzare necessità che il relativo programma risieda nella memoria centrale, Tale programma è costituito da memoria e dati. Lo spazio
DettagliEsercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
DettagliGestione della memoria
Gestione della memoria Gestione della memoria In un sistema multiprogrammato il numero di processi è > del numero di processori, ciò implica: unità di elaborazione virtuale memoria virtuale Un gestore
DettagliCache: 1 livello della gerarchia di memoria
Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere
DettagliSOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004
SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (9 punti) Si
DettagliGestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliCache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:
Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può
Dettaglistatic dynamic random access memory
LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento
DettagliSISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007
2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)
DettagliRegistri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete
+ Veloce + Vicina alla CPU + Costosa Registri della CPU Memoria cache di primo livello sul microprocessore L1 - Capiente Memoria cache di secondo livello sul microprocessore L2 Memoria Centrale - Veloce
DettagliSISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.
SISTEMI OPERATIVI 08.a Gestione della memoria Gestione della memoria Partizionamento Paginazione Segmentazione Memoria virtuale 1 Obiettivi La gestione della memoria (effettuata dal SO usando gli accorgimenti
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.
DettagliEsercizio: memoria virtuale
Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico
DettagliGestione della memoria
Gestione della memoria centrale Gestione della memoria Concetti generali. Swapping. Allocazione contigua di memoria. Paginazione. Segmentazione. Segmentazione con paginazione. Esempio: Pentium Intel Background
DettagliMemoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliMULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1
MULTIPROGRAMMAZIONE E PROTEZIONE G. Frosini Multiprogrammazione e Protezione Slide 1 SISTEMI MULTIPROGRAMMATI Sistema di elaborazione con un solo processore: può eseguire un solo programma alla volta;
DettagliMemoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliIl Sistema Operativo. Informatica Sistema Operativo 1
Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (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
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
DettagliMatlab/Octave - Esercitazione 13
Facoltà di Ingegneria Industriale Dipartimento di Elettronica e Informazione MATLAB/Octave Laurea in Ingegneria - Esercitazione Energetica, 13 Meccanica e dei Trasporti Matlab/Octave - Esercitazione 13
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliGerarchie di memoria Memorie a componenti dinamici 1
Gerarchie di memoria Memorie a componenti dinamici 1 Denominate Dynamic RAM Memorizzazione su componenti capacitivi 1 transistor per bit (4-6 per Static RAM), dunque maggiore densità Richiede un ciclo
DettagliEsercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1
Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria
DettagliStruttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04
DettagliSistemi Operativi Il Sistema Operativo Windows (parte 2)
Sistemi Operativi Il Sistema Operativo Windows (parte 2) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Ogni processo dispone
DettagliSistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl
SOLUZIONI DEI PROBLEMI DEL CAPITOLO 4. Soluzione: Adottando lo schema best-fit la partizione libera utilizzata per allocare un segmento di dimensione pari a 56 byte è quella le cui dimensioni siano le
DettagliSottosistemi ed Architetture Memorie
Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di
DettagliI formati delle istruzioni
Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...
DettagliCalcolo prestazioni cache (1)
Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1
DettagliCAP9. Device drivers
Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici
DettagliLezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario
Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1
DettagliEsame di INFORMATICA Lezione 4
Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite
DettagliSIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI
SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliGli attori principali di un architettura
Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali
DettagliGESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL
GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno
DettagliGestione della memoria. Introduzione Swapping Allocazione contigua Paginazione
Gestione della memoria Introduzione Swapping Allocazione contigua Paginazione Introduzione In un sistema monoprogrammato la memoria centrale è divisa in due parti: una per il sistema operativo, l altra
DettagliArchitettura degli elaboratori - 2 -
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
DettagliBasi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale
Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore
DettagliArchitettura hardware
Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliObiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!
Obiettivi Memoria Virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali Paginazione su richiesta (Demand paging) Algoritmi di sostituzione delle pagine Algoritmi di allocazione
DettagliArchitettura di un processore basato su registri generali.
Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato
DettagliSistemi Operativi Gestione della Memoria (parte 2)
Sistemi Operativi Gestione della Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Memoria Virtuale 1 Una singola partizione o anche l intera
Dettagli9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale
1 (es. 1) Consideriamo un processo con m frame inizialmente uoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine dierse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il
DettagliStruttura interna del Sistema Operativo. 3. La gestione della memoria virtuale
Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale Il concetto di memoria virtuale Separare il concetto di spazio di indirizzamento di un programma eseguibile e dimensione effettiva
DettagliDescrivere i vantaggi di un sistema a memoria virtuale
Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali! Paginazione su richiesta (Demand paging)! Algoritmi di sostituzione delle pagine! Algoritmi di allocazione dei frame! Il problema
DettagliSimuliamo ora il funzionamento di LRU sulla reference string data:
1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3
DettagliLA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
DettagliEsercizio: memoria virtuale
Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico
DettagliUniversità degli Studi di Cassino e del Lazio Meridionale
di Cassino e del Lazio Meridionale Corso di Tecnologie per le Memorie Anno Accademico Francesco Tortorella Gerarchia di memoria: vista complessiva Gerarchia di memoria: tecnologie Accesso casuale (random):
DettagliMemoria Cache. La memoria cache
Testo di rif.to: [Congiu] 6.1 (pg. 193 199) Memoria Cache 06.a Memoria associativa Cache completamente associativa Cache a mappatura diretta Cache set-associativa a n-vien Cache nell Xscale PXA-255 La
DettagliSistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi
Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Numerosi operai in una fabbrica preparano un unico prodotto con l utilizzo di na quantità del componente
DettagliIl concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale
Il concetto di memoria virtuale Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale 25 marzo 2004 Separare il concetto di spazio di indirizzamento di un programma eseguibile e
DettagliStruttura dell elaboratore elettronico
Struttura dell elaboratore elettronico Concetti di base della tecnologia dell Informazione e della Comunicazione Qual è il significato del termine informatica? E' la scienza che si propone di raccogliere,
DettagliModi di esecuzione user / kernel
Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione
DettagliMemoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E
Spazio di indirizzamento virtuale Riprendiamo lo spazio di indirizzamento virtuale del programma di inversione stringa LO SPAZIO DI INDIRIZZAMENTO VIRTUALE DI UN PROCESSO É Spazio di indirizzamento virtuale
Dettaglimemoria virtuale protezione
Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.
DettagliSistemi Operativi. 5 Gestione della memoria
Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria
DettagliSistemi Operativi Esercizi Gestione Memoria
Sistemi Operativi Esercizi Gestione Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides ad A. Memo e T. Vardanega Sistemi Operativi - C. Palazzi 64 Esercizio 1 Dato un
DettagliLa memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini
La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine
DettagliIl software: Istruzioni per il computer
Il software: Istruzioni per il computer Software applicativo aiuta a svolgere operazioni utili in vari campi programmi di videoscrittura, fogli elettronici, videogiochi Software di sistema permette l utilizzo
DettagliArchitettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
DettagliElaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
DettagliMemoria virtuale (seconda parte)
Memoria virtuale (seconda parte) G Lettieri 18 Aprile 216 1 MMU 2 : tabella su 4 livelli Proviamo a calcolare quanto è grande la tabella di corrispondenza usata da MMU 1 La memoria virtuale è di 2 48 byte
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 14 Martedì 29-11-2016 Algoritmi di rimpiazzamento delle pagine Un algoritmo
DettagliCapitolo 5 Elementi architetturali di base
Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo
DettagliLe Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.
Le Memorie Supporti sui quali le informazioni vengono fisicamente memorizzate. Si distinguono per: Velocità Costo per bit Tipo di accesso Accesso a byte o blocchi di byte Volatilità Parte I 15 Due Tipi
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
DettagliDove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems
Dove siamo Gestione della Memoria (1) Dove siamo Dove siamo Gestione della memoria (vista utente) exec() shmalloc() sbrk() getrlimit() File Mgr UNIX Device Mgr Mgr Mgr Application Program Hardware Alloc()
DettagliStruttura Logica del S.O:
Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è
DettagliLinguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA
Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi
DettagliRiprendiamo l esercizio calcolatrice
Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:
DettagliCorso di Calcolatori Elettronici I A.A Le memorie Lezione 16
Corso di Calcolatori Elettronici I A.A. 2010-2011 Le memorie Lezione 16 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Definizione di memoria Sistema organizzato con un insieme di registri
DettagliCAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1
CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più
DettagliFile System ext2. Struttura del filesystem ext2.
Struttura di base File System ext2 Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. Nel filesystem ext2 il blocco (block) definisce la minima
DettagliNel microprocessore 8086 abbiamo una gran quantità di registri
I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1
DettagliCAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE
CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato
DettagliLezione n.14. La memoria cache
Lezione n. La memoria cache Sommario: Politiche di sostituzione Memoria cache Mapping degli indirizzi (modo in cui i dati sono memorizzati nella cache) Capacità e prestazioni Questa lezione conclude la
DettagliCPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica
CPU,, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Ripassiamo: Struttura di un Computer CPU Regola il funzionamento del computer E' in grado di eseguire
DettagliSEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software
DettagliGerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base
Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi
DettagliArchitettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente
Architettura dei calcolatori e sistemi operativi M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente 18.01.2015 Architettura Intel x64 Lo spazio di indirizzamento virtuale
Dettagli