Memoria Virtuale Lezione 10-11 Sistemi Operativi
Problemi implementativi • Dal punto di vista del SO la realizzazione di un sistema di VM richiede la soluzione di una serie di problemi: • Individuazione di strutture dati adeguate per le tabelle delle pagine in memoria centrale • Procedura di gestione del page fault • Back up delle istruzioni • Gestione delle tabelle delle pagine in memoria secondaria
A.A. 2014/2015
2
Corso: Sistemi Operativi © Danilo Bruschi
Tabelle delle pagine • Le principali criticità da considerare sono legati a criteri di • Efficienza • Spazio
• Un sistema che offre la paginazione deve gestire le seguenti strutture dati • Tabella dei frame • Tabella delle pagine, che definisce l’associazione pagina à frame • una per ogni processo in esecuzione o in attesa di esecuzione A.A. 2014/2015
3
Corso: Sistemi Operativi © Danilo Bruschi
Frame Table • Ogni voce della tabella dei frame contiene dei flag che descrivono: • Se il frame è libero o meno • Quale processo (o processi) utilizza il frame • Quando una pagina viene eliminata da un frame, vanno aggiornate le tabelle delle pagine di tutti i processi che referenziavano quella pagina
• Se il frame è bloccato (pinned)
A.A. 2014/2015
4
Corso: Sistemi Operativi © Danilo Bruschi
Pinned Frame • Un frame può essere bloccato se è attualmente utilizzato da processi di lunga durata • Es.: un processo che ha fatto una richiesta di I/O per esempio leggere o scrivere più blocchi di un file su disco • il kernel configura un trasferimento DMA nelle specifiche pagine virtuali nello spazio di indirizzi del processo, ma per questo trasferimento ci vorrà un po’ di tempo per terminare • se il kernel sceglie di rimuovere alcune pagine dalla memoria, esso non può selezionare pagine utilizzate dalla periferica esterna • il kernel “appunta” queste pagine affinché il pager di memoria virtuale non le consideri
• Altro esempio frame che contengono porzioni di kernel A.A. 2014/2015
5
Corso: Sistemi Operativi © Danilo Bruschi
Elemento di una tabella delle pagine
A.A. 2014/2015
6
Corso: Sistemi Operativi © Danilo Bruschi
Page table entry (PTE)
A.A. 2014/2015
7
Corso: Sistemi Operativi © Danilo Bruschi
Paginazione: efficienza •
Procedura di caricamento di un programma in un ambiente multiprogrammato 1. Long term scheduling verifica disponibilità dei frame in memoria centrale 2. Il processo viene caricato in MC e la sua tabella delle pagine compilata e agganciata al PCB 3. Quando il processo va in esecuzione la sua tabella delle pagine viene usata dalla MMU per il binding degli indirizzi, questa operazione compiuta per ogni accesso a memoria, deve essere resa efficiente con il supporto dell’HW
A.A. 2014/2015
8
Corso: Sistemi Operativi © Danilo Bruschi
Ottimizzare l’accesso alla tabella delle pagine • Esistono tre alternative • Registri specializzati • Molto efficiente in esecuzione ma molto costosa per tabelle di grosse dimensioni, soprattutto in context switch
• Esiste un registro che indirizza la tabella delle pagine del processo in esecuzione, tra quelle di tutti i processi del sistema; la tabella sta in memoria • Lenta richiede più accessi a memoria centrale per recuperare le informazioni
• Registri associativi • Implementano un Translation Lookaside Buffer di 32-1024 elementi
A.A. 2014/2015
9
Corso: Sistemi Operativi © Danilo Bruschi
TLBs – Translation Lookaside Buffers
A.A. 2014/2015
10
Corso: Sistemi Operativi © Danilo Bruschi
TLB
A.A. 2014/2015
11
Corso: Sistemi Operativi © Danilo Bruschi
Gestione del Page Fault (1)
1. 2. 3. 4. 5.
6.
Viene generata una trap di page fault (da chi?) Salvataggio del contesto interrotto da parte dell’hw Richiamo procedura di gestione dell’eccezione Il SO individua il numero di pagina da caricare Il SO verifica la validita di questo dato e cerca dei frame liberi Se il frame selezionato è dirty, riscrivilo su disco
A.A. 2014/2015
12
Corso: Sistemi Operativi © Danilo Bruschi
Page Fault Handling (2) 6. 7. 8.
9.
Il SO trasferisce la nuova pagina in memoria La tabella delle pagine viene aggiornata I registri vengono ripristinati, tenendo conto che l’istruzione che ha generato il fault deve essere “ripristinata” Il processo che ha generato il fault viene rimesso in esecuzione
A.A. 2014/2015
13
Corso: Sistemi Operativi © Danilo Bruschi
Gestione del Page Fault
A.A. 2014/2015
14
Corso: Sistemi Operativi © Danilo Bruschi
Tempo medio di accesso ad un dato/istruzione • I parametri da considerare: • β = pfratio: frequenza di page fault • α = Hit ratio: frequenza di successo nell’accesso a TLB • Tmem = Tempo accesso a memoria • TTLB = Tempo accesso a cache • Tpf = Tempo gestione page fault
A.A. 2014/2015
15
Corso: Sistemi Operativi © Danilo Bruschi
La formula • Effective Access Time (EAT): EAT = (ΤTLB + Τmem) α + + (1 – α)[(2Tmem + TTLB)(1-β) + Tpfβ]
A.A. 2014/2015
16
Corso: Sistemi Operativi © Danilo Bruschi
Esercizio Tmem= 100 ns TTLB = 20 ns Tpf = 20ms hit ratio = 80% Pfratio = 1% (0.8)(20+100) + (0.2)[ (20+100+100)*0.99 + 20.000.000 * 0,01] = 0.8*120 + 0.2*217,8 + 200.000 = 96 + 43,56 + 200.000 = 200139,56 ns
L’accesso ad un dato in memoria diventa 2000 volte più lento se confrontata con un sistema non paginato !!! Per avere valori accettabili è necessario avere hit ratio molto più elevato (98%) e pfratio molto più basso (0.0008% cioè 1 ogni 125.000 accessi) 0.98*120 + (0.02)[220*0.999992 + 20.000.000*0.000008] = = 117,6 + (0.02)*( 219,9 + 160) = 117,6 + 7.5 circa 120ns A.A. 2014/2015
17
Corso: Sistemi Operativi © Danilo Bruschi
Tabella delle pagine: dimensioni • La dimensione della tabella può essere molto elevata • Con pagine di 4KB • 1 milione di pagine con indirizzi di 32 bit, quindi 1 milione di elementi nella tabella
• Vanno individuate soluzioni per ovviare a questo inconveniente: • Tabelle delle pagine multilivello • Tabella delle pagine invertite
A.A. 2014/2015
18
Corso: Sistemi Operativi © Danilo Bruschi
Tabella delle pagine a due livelli Top-level page table
A.A. 2014/2015
19
Corso: Sistemi Operativi © Danilo Bruschi
Esercizio In un sistema paginato con tabella delle pagine a due livelli, tabelle di I e II livello contenti fino a 16 elementi e dimensione della pagina di 32 byte, l’indirizzo virtuale 594 come viene “tradotto” dal compilatore? 1. Nella tripla <0, 2. Nella tripla <0, 3. Nella tripla <1, 4. Nessuna risposta A.A. 2014/2015
7, 18> 0, 594> 2, 18> è corretta 20
Corso: Sistemi Operativi © Danilo Bruschi
Tabella delle pagine invertita
La tabella indicizza i frame di memoria fisica Un TLB permette la ricerca delle pagine più usate A.A. 2014/2015
21
Corso: Sistemi Operativi © Danilo Bruschi
Pagine su memoria secondaria • Il sistema operativo usa solitamente un’area di swap su cui memorizza l’intero processo • Il processo viene interamente caricato in swap a partire dalla prima posizione disponibile • le pagine, che avranno un indirizzo ben definito sono poi prelevate/scaricate da quest’area • Ogni pagina in memoria ha una sua copia, non necessariamente aggiornata, in swap area
A.A. 2014/2015
22
Corso: Sistemi Operativi © Danilo Bruschi
Pagine su memoria secondaria • Il processo può cambiare dimensioni durante la sua vita • Si possono allora adottare soluzioni diverse • Si allocano in swap area spazi diversi per Codice, dati e stack • Non pre alloco alcun spazio in area di swap, che gestisco “on-demand” • Ci sarà una copia di una pagina in swap area solo a seguito di un’operazione di swap-out
A.A. 2014/2015
23
Corso: Sistemi Operativi © Danilo Bruschi
Pagine su memoria secondaria
A.A. 2014/2015
24
Corso: Sistemi Operativi © Danilo Bruschi
Page Replacement Algorithms • Nelle fasi di paginazione di processi può verificarsi la seguente situazione: • si deve caricare in memoria una nuova pagina ma non ci sono frame disponibili, in questo caso è necessario: • Individuare le pagine da scaricare su disco • Salvare le pagine modificate durante l’esecuzione, quelle non modificate possono essere sovrascritte
• Devono quindi essere individuate opportune strategie di rimpiazzamento
A.A. 2014/2015
25
Corso: Sistemi Operativi © Danilo Bruschi
Page replacement • Obiettivo di una politica di sostituzione di pagina è di minimizzare il numero di page fault che si verificano nel tempo • ci sono molte politiche di page replacement che vanno valutate con sequenze campione di accessi a memoria • tracce di esecuzione effettive • tracce casuali
• data una sequenza di accessi alla memoria, si simulare una politica di replacement e si determina il suo page fault rate • le politiche migliori sono quelle che, in media, generano page fault rate più bassi A.A. 2014/2015
26
Corso: Sistemi Operativi © Danilo Bruschi
FIFO Page Replacement Algorithm • Mantiene una lista delle pagine che rispetta l’ordine con cui le stesse sono state caricate in memoria (le pagine più “anziane” sono all’inizio della lista) • Le pagine più anziane sono le prime ad essere sostituite • Svantaggio • Sostituire una pagine che è referenziata spesso • Anamalia di Belady
A.A. 2014/2015
27
Corso: Sistemi Operativi © Danilo Bruschi
FIFO • Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 • Memoria di riferimento: 3 frame • Sequenze di accesso
A.A. 2014/2015
28
Corso: Sistemi Operativi © Danilo Bruschi
FIFO • Esercizio: svolgere l’esercizio precedente assumendo di disporre di una memoria centrale di 4 frame
A.A. 2014/2015
29
Corso: Sistemi Operativi © Danilo Bruschi
Optimal Page Replacement Algorithm • Sostituire, tra quelle presenti in memoria, la pagina che sarà referenziata il più tardi possibile • Ottimale ma non realizzabile
• Possibili stime • Tenere traccia dell’uso passato delle pagine e inferire il futuro dal passato • Esercizio: calcolare il numero di page fault generati dalla strategia ottimale con la reference string usata precedentemente e memoria con 3 frame
A.A. 2014/2015
30
Corso: Sistemi Operativi © Danilo Bruschi
LRU • Non è possibile implementare criteri di sostituzione ottimale della pagina • Come nel caso di SJF non si può predire il futuro
• Approccio generale: usare il passato per predire il futuro che dà luogo alla politica Least Recently Used (LRU) • quando una pagina deve essere scaricata, scegliere sempre quella che è stata usata meno recentemente (LRU è fondamentalmente OPT applicato alla stringa dei riferimenti in senso inverso)
• LRU non esibisce anomalia di Belady • LRU è comunque difficile da implementare • tipicamente richiede hardware dedicato poiché è necessario aggiornare i dati necessari per implementare LRU ad ogni accesso di memoria
A.A. 2014/2015
31
Corso: Sistemi Operativi © Danilo Bruschi
LRU • Due approcci generali per l'attuazione politica LRU • opzione 1: uso un contatore per registrare l'ultima volta che una pagina è stata acceduta ogni pagina è possibile accedere ad esempio aggiornare il contatore su ogni istruzione, o su ogni accesso memoria • È necessario estendere le voci della tabella delle pagine per contenere il valore del contatore che MMU dovrà aggiornare ad ogni accesso a pagina, (devo pagare un accesso supplementare alla tabella delle pagine anche in presenza di TLB, o modificare anche il layout di TLB) • Quando una pagina deve essere sostituita: scandisco la tabella delle pagine per individuare tra quelle presenti in memoria la pagina “più vecchia” • Problema: scansione costa O(n) A.A. 2014/2015
32
Corso: Sistemi Operativi © Danilo Bruschi
LRU • Opzione 2: Usare una coda per mantenere l'ordine di accesso alle pagine quando • Quando si accede a una pagina, la si sposta nuovamente all'inizio della coda, questo deve accadere ad ogni accesso di pagina • Quando una pagina deve essere sostituita: si prende la pagina nella parte posteriore della coda; • Individuare la pagina da sostituire è veloce e facile, basta considerare l'ultimo elemento alla fine della coda • ... ma il costo di ogni accesso a memoria è significativamente alto! • Per “quasi” ogni accesso è sono necessarie manipolazioni della lista concatenata, che richiedono più accessi di memoria • In pratica, le LRU è troppo lento/difficile da attuare, si usano sua approssimazioni (NFU e Aging) A.A. 2014/2015
33
Corso: Sistemi Operativi © Danilo Bruschi
Second Chance Page Replacement Algorithm
• Le pagine sono ordinate FIFO con un bit d’uso R • La lista delle pagine quando si verifica un page fault all’istante 20, e A ha il bit R a uno A.A. 2014/2015
34
Corso: Sistemi Operativi © Danilo Bruschi
The Clock Page Replacement Algorithm
• Come seconda chance ma usa una lista circolare, la lancetta punta alla pagina più vecchia A.A. 2014/2015
35
Corso: Sistemi Operativi © Danilo Bruschi
Esercizio Si consideri un processo di 460 byte, che durante la sua esecuzione referenzia istruzioni ai seguenti indirizzi: 10, 11, 104, 170, 73, 309, 185, 245, 246, 434, 458, 364. Il processo viene eseguito su un sistema in cui la memoria centrale ha dimensione 200 byte e le pagine hanno dimensione 100 byte. Quanti sono i page fault che l’esecuzione del suddetto processo genera in un sistema in cui vengono rispettivamente adottati gli algoritmi di rimpiazzamento pagine FIFO, LRU e ottimale? • 6, 7, 5 • 6, 5, 7 • 6, 7, 7 • nessuno dei valori riportati è corretto A.A. 2014/2015
36
Corso: Sistemi Operativi © Danilo Bruschi
Working Set • Working set di un processo è l’insieme di pagine che il processo sta attualmente utilizzando • Ovviamente il working set cambia nel tempo • idealmente, una politica di sostituzione pagina dovrebbe sostituire solo pagine che non appartengono al working set • Se si rimuovono pagine che sono nel working set, questo non può che aumentere il tasso di page fault • Come possiamo approssimare questo comportamento virtuoso A.A. 2014/2015
37
Corso: Sistemi Operativi © Danilo Bruschi
Working Set
• Il working set è caratterizzato da due parametri, l’istante di tempo t in cui viene calcolato e la dimensione della finestra di riferimento k • w(k,t) è la dimensione del working set all’istante t A.A. 2014/2015
38
Corso: Sistemi Operativi © Danilo Bruschi
Working set
• All’istante t1 il processo ha WS={1, 2, 5, 6, 7} • All’istante t2 il processo ha WS = {1, 2, 3, 4} • Idealmente le pagine da sostituire sono 5, 6, 7 A.A. 2014/2015
39
Corso: Sistemi Operativi © Danilo Bruschi
WSClock • La politica WSClock si basa sul concetto di working set per decidere la pagina da scaricare • Il sistema gestisce un orologio virtuale per ogni processo se una
τ
determinata pagina è stata acceduta entro istanti rispetto al current virtual time, si trova nel working sett del processo
• Come nel caso della politica basata sul clock, le pagine sono gestite attraverso lista circolare, e ogni pagina ha un campo che indica l’istante di ultimo uso • Periodicamente tutte le pagine sono esaminate: • Se il bit d’uso è a 1 il valore del campo “time of last use” è settato al valore ocrrente del timer, ed il bit d’uso è posto a zero
A.A. 2014/2015
40
Corso: Sistemi Operativi © Danilo Bruschi
Working Set page replacement algorithm
A.A. 2014/2015
41
Corso: Sistemi Operativi © Danilo Bruschi
WSClock • Quando si verificaun page fault la pagina puntata dalla “lancetta” del clock viene esaminata: • Se il bit d’uso è 1 la pagina fa parte del working set, il bito ‘duso viene azzerato e si passa alla pagina successiva • Se il bit d’uso è 0 la pagina può ancora far parte del working set in funzione del valore di “time of last use” e τ, sarà eleminata solo nel caso di non appartenenza al working set • Un ulteriore criterio può essere quello di considerare o meno il dirty bit A.A. 2014/2015
42
Corso: Sistemi Operativi © Danilo Bruschi
WS clock
A.A. 2014/2015
43
Corso: Sistemi Operativi © Danilo Bruschi
Page Buffering • I sistemi operativi gestiscono un pool di ”frame liberi" da usare in presenza di page fault • In questo modo un processo a fronte di un page fault potrà disporre immediatamente di un frame libero
• Per gestire questo pool i sistemi operativi si rifanno ad algoritmi di page reclaiming che inseriscono in prima battuta un frame in una lista di “non-usati” e poi successivamente in una lista di frame liberi A.A. 2014/2015
44
Corso: Sistemi Operativi © Danilo Bruschi
Politiche di allocazione pagine • Il sistema operativo può influenzare direttamente il comportamento di un sistema di VM operando su due parametri: • Il numero di frame allocati ad ogni processo • Il livello di multiprogrammazione: cioè il numero di processi che possono concorrentemente essere in esecuzione sul sistema
• La politica di allocazione pagine adottata è relativa al primo punto
A.A. 2014/2015
45
Corso: Sistemi Operativi © Danilo Bruschi
Politiche di allocazione pagine • Equi distribuzione: dati m frame ed n processi alloca a ciascun processo m/n frame • Proporzionale: assegna ad ogni processo un numero di frame proporzionale alla dimensione della sua memoria virtuale • Se il processo pi ha spazio virtuale si • Assegna ad ogni processo (si / Σ si) x m frame
• Queste politiche non tengono però conto dell’andamento dinamico delle richieste di pagine A.A. 2014/2015
46
Corso: Sistemi Operativi © Danilo Bruschi
Una soluzione • Un primo meccanismo che può usato per introdurre politiche di allocazione più rispondenti è il WS, se indichiamo con WSi il working set dell’i-esimo processo presente in memoria valgono le seguenti considerazioni: • D < Σ|WSi| aggiungi processi sino a raggiungere il limite D • Se D > n.ro frame della memoria centrale sospendi un certo numero di processi al fine di rispettare l’uguaglianza D = Σ|WSi| A.A. 2014/2015
47
Corso: Sistemi Operativi © Danilo Bruschi
Un altra soluzione
Una strategia può essere qualla di mantenere la frequenze di PF per ogni processo in un valore intermedio tra A e B A.A. 2014/2015
48
Corso: Sistemi Operativi © Danilo Bruschi
Global. Vs. local • Quando un processo necessità più frame il SO ha due opzioni: • Acquisire il frame nuovo da uno qualunque dei processi in esecuzione (global replacement) • Acquisire il frame dal pool dei frame assegnati al processo che ha generato il page fault (local replacement)
A.A. 2014/2015
49
Corso: Sistemi Operativi © Danilo Bruschi
Global vs. Local • Global: • Limiti: il page fault di un processo può influire direttamente sul comportmento di altri processi • Vantaggi: maggiore flessibilità per il SO
• Local • Limiti: difficoltà di stimare correttamente la dimensione del pool da assegnare ad un processo • Vantaggi: se un processo inizia ad effettuare page-fault il fenomeno resta localizzato
• Global replacement policy è la soluzione più usata A.A. 2014/2015
50
Corso: Sistemi Operativi © Danilo Bruschi
Alcune Considerazioni • Obiettivo principale di una politica di allocazione pagine è garantire a tutti i processi un numero sufficiente di frame per svolgere le loro funzioni • In realtà l’obiettivo più realistico è quello di contenere il numero di page fault ad un livello accettabile • Da un certo punto di vista il page fault non è un evento così catastrofico: • Quando un processo va in page fault viene bloccato su I/O consentendo ad altri processi in ready l’uso della CPU A.A. 2014/2015
51
Corso: Sistemi Operativi © Danilo Bruschi
Trashing • Il problema si pone quando la frequenza di page fault diventa così alta che il sistema spende la maggior parte del suo tempo a gestire i page fault o in attesa di pagine che devono essere acquisite • Il trashing si verifica ogni volta che il numero totale dei frame che i processi usano è maggiore del numero totale dei frame disponibili A.A. 2014/2015
52
Corso: Sistemi Operativi © Danilo Bruschi
Trashing • Esempio: un sistema con 20 frame di memoria centrale e 4 processi in esecuzione, ciascuno con memoria virtuale di 10 frame, ma che ne sta usando solo 5. • Ad un certo punto la località di due processi passa da 5 a 10, a questo punto il sistema dovrebbe poter disporre di 30 frame, ma ne ha solo 20
A.A. 2014/2015
53
Corso: Sistemi Operativi © Danilo Bruschi
Trashing e Multiprogrammazione • Aumentando il livello di Multiprogrammazione la richiesta di frame fisici aumenta e tipicamente aumenta anche la frequanza di page fault
A.A. 2014/2015
54
Corso: Sistemi Operativi © Danilo Bruschi
Dimensione Pagine • Vantaggi pagine piccole • Minore frammentazione interna • Più adattabili alle dimensioni dei programmi • Riduzione spazio di memoria inutilizzato
• Svantaggi • Grosse tabelle delle pagine • Più accessi a disco
A.A. 2014/2015
55
Corso: Sistemi Operativi © Danilo Bruschi
Dimensione Pagine
A.A. 2014/2015
56
Corso: Sistemi Operativi © Danilo Bruschi
SEGMENTAZIONE
A.A. 2014/2015
57
Corso: Sistemi Operativi © Danilo Bruschi
Segmentazione • La memoria virtuale vista finora è monodimensionale • Avere più spazi di indirizzi separati può essere vantaggioso in presenza di aree dati distinte che crescono durante l’esecuzione • Es. Compilatore che usa aree per • • • • •
A.A. 2014/2015
Testo sorgente Symbol table Tabella delle costanti intere e floating point Albero di parsing Stack per le chiamate di procedura del compilatore stesso
58
Corso: Sistemi Operativi © Danilo Bruschi
Segmentazione • Lo spazio di indirizzamento è costituito da un insieme di spazi di indirizzi logici indipendenti detti segmenti • I segmenti hanno dimensioni diverse e possono cambiare senza interferire gli uni con gli altri • L’utente definisce i segmenti ma non li gestisce • Semplifica le operazioni di linking • Segmento, offset per indirizzare i moduli • I segmenti sono indipendenti
• Facilita la condivisione di librerie • Soffre di frammentazione esterna
A.A. 2014/2015
59
Corso: Sistemi Operativi © Danilo Bruschi
Segmentazione: esempio
A.A. 2014/2015
60
Corso: Sistemi Operativi © Danilo Bruschi
Segment Sharing
A.A. 2014/2015
61
Corso: Sistemi Operativi © Danilo Bruschi
Mapping indirizzo logico-fisico
A.A. 2014/2015
62
Corso: Sistemi Operativi © Danilo Bruschi
Segmentazione
A.A. 2014/2015
63
Corso: Sistemi Operativi © Danilo Bruschi
Problemi Segmentazione • Non è trasparente al programmatore • Presenta i problemi di frammentazione che caratterizzano gli schemi di gestione della memoria a partizioni
A.A. 2014/2015
64
Corso: Sistemi Operativi © Danilo Bruschi
Segmentazione paginata • Obiettivo: cogliere gli aspetti positivi di entrambe le soluzioni cercando di contenere gli effetti negativi • Un sistema in cui i processi sono suddivisibili in segmenti che non devono essere necessariamente caricati interamente in memoria perché paginabili
A.A. 2014/2015
65
Corso: Sistemi Operativi © Danilo Bruschi
Calcolo indirizzo
A.A. 2014/2015
66
Corso: Sistemi Operativi © Danilo Bruschi
Un caso di studio: IA-32 •
• • •
Ogni processo è suddiviso in almeno tre segmenti: code-segment, data-segment, e uno stack-segment i cui dati di riferimento sono presenti in appositi registri (segment register) Ogni segmento può avere dimensioni sino a 4GB Il compilatore assegna ad ogni dato/istruzione il suo spiazzamento all’interno del segmento di riferimento L’indirizzo logico di un elemento è costituito da: • •
•
L’indicatore del suo segmento di riferimento (segment selector) L’indirizzo asegnatogli dal compilatore
In una prima fase di trasformazione l’indirizzo logico viene trasformato in indirizzo lineare
A.A. 2014/2015
67
Corso: Sistemi Operativi © Danilo Bruschi
Logico à Lineare
A.A. 2014/2015
68
Corso: Sistemi Operativi © Danilo Bruschi
Address-translation • L’indirizzo lineare generato dalla CPU viene suddiviso dalla MMU in 3 campi 31
22 21
12 11
index into page-directory
index into page-table
10-bits
10-bits
Questo campo seleziona uno dei 1024 record della Page-Directory
Questo campo seleziona uno dei 1024 record della Page-Table
A.A. 2014/2015
0 offset into page-frame 12-bits
69
Questo campo è l’offset del byte indirizzato all’interno di una pagine di 4096 byte Corso: Sistemi Operativi © Danilo Bruschi
Paginazione Intel
A.A. 2014/2015
70
Corso: Sistemi Operativi © Danilo Bruschi
Riassumendo
A.A. 2014/2015
71
Corso: Sistemi Operativi © Danilo Bruschi
Physical Address Extension • Abilita un’estensione dello spazio di indirizzamento fisico a 36 bit • Introdotta a partire dal Pentium Pro, in cui il bus indirizzi è stato esteso da 32 a 36 linee • Lo spazio virtuale di ciascun processo resta di 32 bit • Abilitata settando il bit PAE in CR4 • Dimensione consentita delle pagine: 4KB, 2MB, 4MB A.A. 2014/2015
72
Corso: Sistemi Operativi © Danilo Bruschi
PAE: Strutture di supporto • Page directory e page table restano di dimensione 4K • Per poter esprimere correttamente indirizzi di 36 bit, gli elementi di page directory e page table sono estesi da 32 a 64 bit • Questo significa che ogni tabella conterrà al più 29 elementi per un totale di 218 pagine indirizzabili e quindi per uno spazio virtuale di 230 bit • Per garantire il mantenimento dello spazio virtuale a 32 bit si introduce una ulteriore tabella di 4 elementi: page-directory-pointer-table A.A. 2014/2015
73
Corso: Sistemi Operativi © Danilo Bruschi
A.A. 2014/2015
74
Corso: Sistemi Operativi © Danilo Bruschi
A.A. 2014/2015
75
Corso: Sistemi Operativi © Danilo Bruschi
A.A. 2014/2015
76
Corso: Sistemi Operativi © Danilo Bruschi
A.A. 2014/2015
77
Corso: Sistemi Operativi © Danilo Bruschi