La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Prof. Marco Mezzalama –All rights reserved Gestione della memoria logica e fisica degli elaboratori x86.

Copie: 1
Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo.

Presentazioni simili


Presentazione sul tema: "Prof. Marco Mezzalama –All rights reserved Gestione della memoria logica e fisica degli elaboratori x86."— Transcript della presentazione:

1 Prof. Marco Mezzalama –All rights reserved Gestione della memoria logica e fisica degli elaboratori x86

2 Prof. Marco Mezzalama –All rights reserved In modo reale gli indirizzi, determinati a livello di istruzioni, indirizzano direttamente la memoria fisica, seppur mediante un modello di segmentazione della memoria fisica stessa, mediante 20 bit (1MB) Offset(16) 0000Reg.Seg.(16)

3 Prof. Marco Mezzalama –All rights reserved Memoria logica Memoria lineare Memoria fisica Modello di memoria – la gerarchia

4 Prof. Marco Mezzalama –All rights reserved Modello di memoria – la gerarchia Memoria logica: spazio di memoria visibile dallarchitettura del processore, a livello di registri (assembler) Memoria lineare: spazio di memoria gestito dallarchitettura mediante un indirizzamento lineare (può coincidere con la memoria logica in alcuni processori) Memoria fisica: spazio di memoria direttamente indirizzabile dal ABUS Memoria reale: la memoria fisica realmente disponibile

5 Prof. Marco Mezzalama –All rights reserved In modo protetto gli indirizzi, determinati a livello di istruzioni, sono espressi su 46 bit (64TB) segmentazione della memoria logica (virtuale) Il modo protetto è un gran cas..o! Offset (32/16)Reg.Seg.(14)

6 Prof. Marco Mezzalama –All rights reserved In modo protetto ogni segmento risulta essere pari a 4 GB: Il registro di segmento (selettore) specifica il segmento Loffset determina lindirizzo allinterno del segmento Il modo protetto è un gran cas..!

7 Prof. Marco Mezzalama –All rights reserved Offset (32/16) Reg.Seg.(14) Seg. 0 Seg. 1 Seg. 2 Seg. 3 Esistono 2 14 (pari a 16K) segmenti, ciascuno da 4 GB (offset su 32 bit)

8 Prof. Marco Mezzalama –All rights reserved Offset (32/16)Reg.Seg.(14) segmentazione paginazione Indirizzo logico (46) Indirizzo lineare (32) Indirizzo fisico (32)

9 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale) Memoria lineare

10 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale) Memoria lineare descrittore

11 Prof. Marco Mezzalama –All rights reserved Descrittori Ad ogni segmento è associato un descrittore, contenente: 1.Mapping tra ind. Logico e ind. Lineare 2.Attributi del segmento (code/data, R/W, etc.) 3.Il livello di privilegio del segmento (0-3) Un descrittore è composto da 8 byte Tutti i descrittori sono contenuti in due tabelle: 1.i primi 8k nella Global Description Table (GDT) 2.I secondi 8K nella Local Descrioption Table (LDT)

12 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale) Descrittore Seg. 0 Descrittore Seg. 1 Descrittore Seg. 2 Descrittore Seg. 3 Tabella dei descrittori

13 Prof. Marco Mezzalama –All rights reserved Mapping tra indirizzo logico e lineare Offset (32/16)Reg.Seg.(14) descrittore Indirizzo di base (32 bit) + Indirizzo lineare (32 bit)

14 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale – 46 bit ind.) Memoria lineare (32 bit ind.) Mapping tra indirizzo logico e lineare Seg. 0 Indirizzo di base (32 bit) limite

15 Prof. Marco Mezzalama –All rights reserved Mapping tra indirizzo logico e lineare Nel descrittore sono memorizzati: 1.Indirizzo di base (che corrisponde allindirizzo di testa del segmento nella memoria lineare, su 32 bit) 2.Limite (che indica il n° di byte effettivamente utilizzati del segmento, in termini di indirizzo di fine segmento nella memoria lineare, sono memorizzati solo i primi 20 bit più significativi) 3.Attributi (10 bit) 4.Livello di privilegio (2 bit)

16 Prof. Marco Mezzalama –All rights reserved Privilegi Ad ogni entità (processo, codice, segmento dati, tabelle di sistema, …) è attribuito un livello di privilegio variabile tra 0 e 3,con 0 il massimo livello

17 Prof. Marco Mezzalama –All rights reserved Privilegi (il modello gerarchico)

18 Prof. Marco Mezzalama –All rights reserved Privilegi (le leggi generali) R1. Qualità dei dati Un processo può accedere a dati (segmenti) allo stesso livello o a livelli più bassi (logicamente, numericamente più elevati). PL processo >= Pl dati (logicamente) PL processo <= PL dati (numericamente) R2. Affidabilità del codice Un segmento di codice può accedere ad un altro segmento solo se allo stesso livello o a livelli più alti (logicamente, numericamente inferiori).

19 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale) Memoria lineare Memoria fisica Paginazione

20 Prof. Marco Mezzalama –All rights reserved Pag. 0 Pag. 1 Pag. 2 Pag. 3 Memoria fisica Paginazione Ogni pagina è di 4KB: 1.Lindirizzo di testa della pagina è calcolato dal sistema di paginazione a partire dai 20 bit più significativi dellindirizzo lineare e produce i 20 bit più significativi dellindirizzo fisico 2.Loffset nella pagina è prelevato direttamente dallindirizzo lineare (12 bit) Nel Pentium è possibile configurare il sistema di paginazione con pagine da 4MB

21 Prof. Marco Mezzalama –All rights reserved Indirizzo lineare (32 bit) Due livelli di tabelle di paginazione Indirizzo fisico (32 bit) Paginazione Offset (12) II livello(10) I livello(10) Offset (12) Indirizzo inizio pagina(20)

22 Prof. Marco Mezzalama –All rights reserved Indirizzo lineare (32 bit) Indirizzo fisico (32 bit) Paginazione Offset (12) II livello(10) I livello(10) Offset (12) Indirizzo inizio pagina(20)

23 Prof. Marco Mezzalama –All rights reserved Paginazione Ogni tabella : 1.È costituita da 1024 elementi, 2.Ogni elemento è costituito da 8 byte 3.Ogni elemento contiene: 20 bit di indirizzo (al primo livello lindirizzo di testa della tabella di secondo livello, al secondo livello lindirizzo di testa della pagina nella memoria fisica) un certo numero di bit di attributo 4.Si hanno un totale di 1024 tabelle di secondo livello per un totale max di 8K*K = 8MB 5.Lindirizzo di testa della tabella di primo livello è contenuto nel registro di cpu CR2

24 Prof. Marco Mezzalama –All rights reserved Paginazione S/U = livello di privilegio della pagina System (pari ai livelli 0,1,2 della Segmentazione), User (livello 3) R/W = accessibilità in lettura/scrittura della pagina in Memoria A = accessed, indica se una pagina nella memoria fisica è stata modificata, utile negli algoritmi di swapping S/U Indirizzo inizio pagina(20) R/WA

25 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 1 Seg. 2 Seg. 3 Memoria logica (virtuale – 46 bit ind.) Memoria lineare (32 bit ind.) Memoria paginata lineare

26 Prof. Marco Mezzalama –All rights reserved Memoria paginata lineare Facendo puntare tutti i segmenti allinizio della memoria, si elimina di fatto la segmentazione, realizzando una memoria lineare paginata (gestita a livello programmazione dai soli offset) I registri di segmento CS,DS, SS, …. ( ed i relativi descrittori) vengono inizializzati una sola volta al boot del sistema operativo Offset (32/16)Reg.Seg.(14)

27 Prof. Marco Mezzalama –All rights reserved Segmentazione e Paginazione Ai fini della velocità di esecuzione i controlli e le traduzioni tra ind. Logico ed ind. Fisico devo essere fatte in un tempo di pipeline ) i descrittori dei segmenti attivi e gli elementi delle tabelle di paginazione più frequentemente usati sono contenuti in apposite cache on chip, di cui la seconda è indicata come TLB TLB cache Offset (12) II livello(10) I livello(10) Offset (12) Indirizzo inizio pagina(20)

28 Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo logico(virtuale) risulta: DS: EBX = 200:155 EBX = 155 DS(14 bit) = 200

29 Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo logico(virtuale) risulta: DS: EBX = 200:155 Viene pertanto selezionato il 200-esimo descrittore nella tabella dei descrittori Si supponga che tale descritto contenga come Indirizzo di base (che corrisponde allindirizzo di testa del segmento nella memoria lineare, su 32 bit) il valore (BA = 10000).

30 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 200 Seg Memoria logica (virtuale) Memoria lineare Descrittore 200 BA=10000 ……………. EBX = 155 DS(14 bit) = 200

31 Prof. Marco Mezzalama –All rights reserved Esempio LIndirizzo di base viene sommato al valore delloffset (BX) determinando lindirizzo lineare effettivo del dato da leggere dalla memoria. il valore ottenuto risulta: (BA) (EBX) = (indirizzo dato in memoria lineare) Tale indirizzo se NON è abilitata la paginazione è inviato allo ABUS In caso contrario allunità di paginazione

32 Prof. Marco Mezzalama –All rights reserved Seg. 0 Seg. 200 Seg Memoria logica (virtuale) Memoria lineare Descrittore 200 BA=10000 ……………. EBX = 155 DS(14 bit) = 200 Byte di Indirizzo 10155

33 Prof. Marco Mezzalama –All rights reserved Paginazione Lindirizzo lineare su 32 bit viene tradotto in indirizzo fisico dalle tabelle di paginazione ed inviato su ABUS Tabelle PAG. (TLB cache) Xxxx (ABUS)

34 Prof. Marco Mezzalama –All rights reserved CONSIDERAZIONI Nei sistemi operativi odierni, la segmentazione è di fatto disabilitata, nel senso che si definiscono allattivazione segmenti molto ampi e sovrapposti. Al contrario la gestione dei processi e dei privilegi viene fatta, seppur in modo meno preciso a livello di paginazione. Il modo reale è attivato solo in fase di avvio-reset, al fine di eseguire il POST del BIOS e il bootstrap del SO. Questo in alcune versioni contiene un suo BIOS proprietario, compatibile con il modo protetto, che rende più facile la gestione fisica dei periferici in un contesto multi task


Scaricare ppt "Prof. Marco Mezzalama –All rights reserved Gestione della memoria logica e fisica degli elaboratori x86."

Presentazioni simili


Annunci Google