Sistemi x86 CALCOLATORI ELETTRONICI LM



Documenti analoghi
Sistemi Operativi. 5 Gestione della memoria

Hardware di un Computer

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Famiglia dei processori INTEL

Sistema operativo: Gestione della memoria

Intel x 86. Prof. B.Fadini a.a. 2006/2007

GESTIONE DELLA MEMORIA CENTRALE

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

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

Il microprocessore 8086

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Architettura del Pentium

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Assembly. Modello x86

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Capitolo Silberschatz

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Gestione della memoria centrale

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Protezione. Protezione. Protezione. Obiettivi della protezione

STRUTTURE DEI SISTEMI DI CALCOLO

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

memoria virtuale protezione

Corso di Sistemi di Elaborazione delle informazioni

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Varie tipologie di memoria

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Organizzazione della memoria

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Architettura di un sistema di calcolo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

FONDAMENTI di INFORMATICA L. Mezzalira

File system II. Sistemi Operativi Lez. 20

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Il Sistema Operativo

Architettura degli elaboratori (A)

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Laboratorio di Informatica

INFORMATICA 1 L. Mezzalira

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Il livello architettura e set di istruzioni

Memoria Virtuale. Lezione 29 Sistemi Operativi

Approccio stratificato

Il memory manager. Gestione della memoria centrale

DMA Accesso Diretto alla Memoria

Il processore Pentium (G. Manduchi - M. Moro )

Sistemi Operativi. 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

HEX Bin HEX Bin HEX Bin HEX Bin C D A 1010 E B 1011 F 1111

Gerarchie di Memoria Andrea Gasparetto

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Calcolatori Elettronici B a.a. 2008/2009

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

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Mac Application Manager 1.3 (SOLO PER TIGER)

Calcolatori Elettronici A a.a. 2008/2009

Infrastrutture Software

CONTABILITÀ. Gestione Attività Multipunto. Release 5.20 Manuale Operativo

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Esame di INFORMATICA

MANUALE UTENTE Fiscali Free

Organizzazione degli archivi

Architettura hardware

Il Sistema Operativo (1)

Capitolo 11 La memoria cache

RISOLUTORE AUTOMATICO PER SUDOKU

Il File System. Il file system

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Organizzazione della memoria principale Il bus

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Protezione. Sistemi Operativi mod. B 16.1

Architettura del calcolatore

L architettura di riferimento

Sistemi Operativi Kernel

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software. Il software del PC. Il BIOS

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

La Gestione delle risorse Renato Agati

Le virtual machine e la memoria virtuale

Transcript:

Sistemi x86 CALCOLATORI ELETTRONICI LM 1

Registri x86 31 15 8 7 AH AX AL EAX 31 IP BH BX BL EBX CH CX DH DX CL DL ECX EDX 31 FLAGS EF SI ESI DI EDI BP EBP 15 8 7 SP CS SS DS ESP Sono presenti anche i registri Floating Point (stack da 8x8 bit). Nei sistemi a 64 bit sono stati inseriti ulteriori registri R8, R9 R16 ES FS DATA GS 2

Segmentazione sistemi x86 (Sistemi a 32 bit) Protezione e controllo accessi ai vari segmenti per verificare sia il diritto di accedere sia la correttezza dell indirizzo (ex- stack) Vari environments ciascuno dei quali deve risultare separato e protetto dagli altri (multiutenza) Supporto per il sistema operativo 886 Indirizzo Memoria x86 Indirizzo Controllo traduzione Memoria 3

Segmentazione rivisitata La segmentazione è uno schema di gestione della memoria che riflette il punto di vista del programmatore Un programma è una collezione di segmenti: programma principale, procedure, funzioni, oggetti, variabili locali e globali, stack etc. ovvero di moduli con informazioni congruenti da allocare in memoria non necessariamente in indirizzi consecutivi (a livello di moduli) La segmentazione permette la rilocazione dinamica e la condivisione Può dar luogo a frammentazione (esterna da non confondere con quella interna delle pagine), ad esempio se il paging non è abilitato Se si vuole controllare l accesso da parte del sistema (a differenza dell 886) è necessario un meccanismo di controllo Ciò si realizza tramite di una tabella dei segmenti (Segment Table) che indica indirizzo iniziale e dimensione di ogni segmento, le sue proprietà (valido/invalido, lettura/scrittura, user/supervisor etc.) etc. puntato da un registro della tabella dei segmenti che punta alla tabella dei segmenti e di un registro della lunghezza della tabella dei segmenti (Segment Table Length Register) tale per cui un numero di segmento k è valido se k<stlr. Ogni entry è un descrittore di segmento Essendo i segmenti di dimensione variabile è necessaria un allocazione dinamica della memoria 4

Descrittore di Segmento Ogni segmento è un oggetto descritto da un descrittore di segmento che ne definisce: L indirizzo iniziale nell ambito dello spazio di memoria virtuale La lunghezza Come vi si può accedere (lettura, scrittura, esecuzione etc.) Il livello di privilegio (ovvero di sicurezza) che un programma deve avere per l accesso (v. dopo) Se si tratta di segmento di dati o di codice o un segmento speciale usato solo dal sistema operativo La presenza o l assenza nella memoria principale L avvenuto accesso (non se è stato scritto) 5

Descrittore di Segmento 31 24 19 16 14 13 11 8 7 Base 31:24 G D B A V Base 15: Limit 19-16 P P L S Type Limit 15: Base 23:16 64 bit 8 bytes Ex. descrittore di segmento di dati AV: disponibile per il software BASE: indirizzo base del segmento (32 bit) DB: parallelismo del segmento (ampiezza degli operandi 16/32 bit) PL: livello di privilegio (v. dopo) G: granularità (limit dimensione del segmento - come multiplo di 1 o 496 bytes) segmento 1B-1MB oppure 4KB-4GB LIMIT: limite del segmento ( 2 bit lunghezza v. bit G) P: segmento presente/assente in memoria S: tipo di descrittore (sistema/applicazione) TYPE: tipo di segmento (dato/codice R/W - Expand down-up) I campi possono essere differentemente interpretati a seconda del TIPO e di altri parametri Si noti che non è presente alcun campo specifico per la determinazione della vecchiaia di un segmento (c è solo un bit accessed - che indica se è stato utilizzato v. dopo) : questo è legato al fatto che di norma il sistema ha il paging attivo con il relativo meccanismo I descrittori sono ovviamente modificati per indirizzamenti con un numero maggiore di bit 6

Descrittori 31 24 19 16 14 13 11 8 7 Base 31:24 G D B A V Limit 19-16 P P L S Type Base 23:16 Base 15: Limit 15: P P L S Type Access Right Byte P PL S > Presente/assente in memoria (per codice/dati) oppure valido/non valido (per segmenti SO e gates) > Livello di protezione > = 1 codice/dati (utente) ; = descrittori di sistema o gates - v. dopo (OS) Type > 16 tipi differenti (in realtà 32 perché il significato dipende anche da S) 7

Descrittori dati (System ->utilizzabile solo dall OS livello v. dopo)) S = 1 non system P P L 1 Type Access Right Byte C/D E W A C/D Codice o dati ( se dati). In questo caso E (Expand) crescita verso il basso o l alto (v. stack) W (Write) sola lettura oppure lettura e scrittura A (Accessed) segmento utilizzato (per il replacement) 8

Descrittori di codice S = 1 non system P P L 1 Type Access Right Byte C/D C R A C/D Codice o dati ( se dati). In questo caso 1 C /1 Conformante o meno (v. dopo) R /1 Sola lettura oppure può essere anche utilizzato come dato A (Accessed) segmento utilizzato (per il replacement) 9

Segmenti di dati Non System C/D E(xp.) W A(ccessed) Descrizione Segmento non ancora utilizzato, a sola lettura, espansione verso l alto 1 Come sopra ma già utilizzato 1 Segmento non ancora utilizzato, lettura/scrittura, espansione verso l alto (normale segmento di dato) 1 1 Come sopra ma già utilizzato 1 Segmento non ancora utilizzato, a sola lettura, espansione verso il basso (call gate v. dopo) 1 1 Come sopra ma già utilizzato 1 1 Segmento non ancora utilizzato, lettura/scrittura, espansione verso il basso (normale segmento di stack) 1 1 1 Come sopra ma già utilizzato 1

Tabelle dei descrittori NO DIRTY BIT (indicatore di modifica o meno ma solo accessed )!!!! Nei sistemi x86 ogni segmento viene reperito tramite il relativo descrittore che può essere posizionato in due differenti tabelle: la GDT (Global Descriptor Table) o la LDT (local Descriptor Table). La GDT contiene tutti i descrittori dei segmenti utilizzati dal sistema operativo ed è sempre presente in memoria. Di LDT ve ne sono tante quante sono i processi presenti nel sistema. Teoricamente per ogni accesso alla memoria (sia esso per dati o codice) è necessario un accesso preventivo alla GDT o alla LDT (ovviamente è previsto un meccanismo di caching dei descrittori v. dopo). Tipici descrittori presenti in ogni LDT sono dati, segmento, codice. Sono anche presenti descrittori di task e di call (v. dopo) Il CS, il SS, il DS etc. quindi NON contengono indirizzi fisici ma indici (selettori) che permettono di individuare un descrittore che punta a sua volta all indirizzo iniziale (virtuale) del segmento interessato. 11

Indirizzamento Un indirizzo nei sistemi x86 è una stringa di bit di 48 bit (16 di selettore e 32 di offset) (nel registro di segmento) 47 48 bit pointer (16+32) 32 31 SELETTORE OFFSET Indirizzo limite Segmento dato Diritti Limite Ind. iniziale Descrittore di segmento Presente in GDT o LDT Indirizzo iniziale del segmento L'indirizzo ottenuto tramite l uso del descrittore è un indirizzo lineare o virtuale 12

Tabelle dei descrittori GDT N Indice SELETTORE N-1 N-2 Registri di CPU LIMIT BASE 4 3 2 1 GDTR Global Descriptor Table Register Il valore dell indirizzo base (e il limite) della GDT è caricabile nei relativi registri tramite istruzioni privilegiate (v. dopo) Poiché l indice nella tabella è fornito dai primi 13 bit del selettore (gli altri sono bit di di controllo) la GDT può contenere fino a 8192 da 8 bytes per un totale di 64 Kbytes. Analogamente per la LDT (e la IDT v. dopo) 13

Local Descriptor Table LDT N N-1 N-2 LDTR LIMIT BASE GDTR GDT N N-1 N-2 4 3 2 1 4 3 2 1 Esiste un registro LDTR contenente un selettore che punta al descrittore della LDT corrente. La LDT è quindi un segmento della GDT! Caricabile con istruzioni privilegiate. 14

Local Descriptor Table Una Local Descriptor Table contiene tutti i descrittori specifici di un task (processo) presente nel sistema. In particolare il registro LDTR contiene il selettore della LDT del task attualmente in esecuzione. Contenuti di una Local Descriptor Table: Descrittori di codice, dati e stack del task Le call gates (v. dopo) per accedere a procedure di livello più elevato I task gates che permettono di mettere in esecuzione altri tasks 15

Aliasing Ma se tutti i dati fanno parte di segmenti come è possibile per il SO modificare il contenuto delle GDT, LDT, IDT etc. dal momento che non esistono specifiche istruzioni di accesso? ALIAS Poiché un segmento è una porzione di memori fisica nulla vieta che la stessa porzione sia descritta da due descrittori diversi con differenti tipi e modalità di accesso N N-1 X K 3 2 1 GDT Y X ed Y sono la stessa zona di memoria descritta da due descrittori diversi ad esempio uno (X) di codice e uno (Y) di dati. Il compilatore, ad esempio, quando genera il codice scrive nel segmento tramite il descrittore X (scrittura abilitata) ma per la messa in esecuzione il SO operativo utilizza il descrittore K. Ovviamente il sistema operativo ne deve tenere traccia in quanto se X (Y) viene scaricato dalla memoria sul disco oppure cancellato è necessario aggiornare tutti i descrittori aliased Per la GDT e ogni LDT esiste il relativo alias 16

Selettore SELETTORE DI SEGMENTO (Contenuto di un registro di segmento) 15 INDEX 3 2 1 T I RPL INDEX: indice nella tabella dei descrittori 13 bit -> 8192 selettori TI: Table Identifier ( >GDT 1 > LDT) RPL: livello di privilegio v. protezione 17

Un esempio mov ax, D mov ds, ax mov dl,[3] Nell 886 significa inserire D nel DS e portare in dl il quarto byte (c è anche la posizione ) del segmento - locazione D3 Anche in x86 significa inserire D nel DS ma D è un selettore 111 e precisamente il ventisettesimo (esiste anche lo zero) della GDT (111 H =26 D ) con livello di privilegio! Se la base riportata nel descrittore è F5D viene letto il byte alla locazione (virtuale) F5D3 (offset della istruzione 3)! 18

Caching dei descrittori I descrittori di tutti i segmenti utilizzati dai registri di segmento sono allocati in piccole cache interne da 8 bytes collegate ai relativi registri di segmento che vengono caricate al primo accesso a un descrittore diverso da quello corrente. Ciò evita che per ogni accesso in memoria si debba prima accedere alla memoria per reperire il descrittore necessario. Ovviamente la formazione dell indirizzo necessita dell indirizzo iniziale delle tabelle dei descrittori. Quello della GDT è contenuta in un registro specifico della CPU (e normalmente viene caricato una sola volta) mentre quello della LDT cambia ad ogni cambiamento di processo e quindi viene anch esso caricato in un registro specifico al primo accesso eseguito da un nuovo processo 19

Indirizzamento completo di un dato x86 Displacement selector SS selector GS selector FS selector ES selector DS selector CS Base Register Index Register X DESCRIPTOR REGISTERS Access Rights SS Access Limit Rights GS Access Base Address Limit Rights FS Access Rights ES Base Address Limit Access Rights DS Base Address Limit Access Rights CS Base Address Limit Base Address Limit Base Address + + Scale Offset LINEAR ADDRESS (indirizzo virtuale) CACHE 2

Scaling Segment Base Address CS, DS, ES FS, GS, ES Base Register EAX, EBX, ECX, EDX EBP, ESI, EDI, ESP Index Register EAX, EBX, ECX, EDX EBP, ESI, EDI Scale Factor Displacement, 1, 2,4,8 Effective Address EX: mov EAX, [EBX][ECX*4 + 6] (displacement totale) 21

Formazione dell offset a livello di istruzione Base Index Scale Displacement EAX EBX ECX EDX ESP EBP ESI EDI EAX EBX ECX EDX EBP ESI EDI * 1 2 4 8 -bit 8-bit 16-bit 32-bit Offset= Base + (Index*Scale) + Displacement mov eax, darray[edx*4] ; In eax (32 bit) una dword (dword 4 bytes) di un array di dwords mov eax, [esi*8][edi] ; In eax una dword di un array di quadwords 22

Indirizzamento completo nei sistemi x86 (32 bit) SELECTOR 15 31 selettore OFFSET Indirizzo Descrittore 31 22 21 12 11 DIR TABLE Indirizzo lineare OFFSET 2 bit address + 12 bit info 2 bit address + 12 bit info OP. P.TBL.ENTRY DIR ENTRY 124 linee CR3 Indirizzo fisico in CR3 Ogni task ha una propria tabella delle pagine in cui risiedono anche gli indirizzi delle chiamate al sistema operativo. Ovviamente è possibile condividere programmi e dati attribuendo traduzioni uguali a indirizzi logici diversi. L OS è una serie di routines richiamate da interrupt software che NON alterano il task (v. dopo) 23

Indirizzamento impaginato Pagine da 4 K 31 22 21 12 11 DIR TABLE OFFSET Pagine da 4 M 31 22 21 DIR OFFSET Se le pagine sono da 4 MB l offset in pagina è ovviamente di 22 bit e quindi i bit di selezione nella tabella delle pagine sono solo quelli di primo livello ovvero i bit 31-22 24

Tabelle delle Pagine Utilizzabile dal software Page size (4K/4M) Tabella II livello utilizzata Page cache disable Page write through User/Supervisor Scrivibile Presente (I livello) Page Directory Element (individuato dal campo DIR dell indirizzo virtuale) 31 12 Initial address 31:12 11 9 8 7 6 5 4 3 2 1 P P Avail P A C W U W P S D T N.B. Segnale PWT non WT/WB* Accessibile solo da Protection Level,1,2 o da tutti (Vedi dopo sistema di protezione) L indirizzo iniziale fisico della tabella di primo livello scandita dal valore DIR è contenuto in CR3 Se l indirizzamento è a due livelli nei bit 31-12 dell indirizzo c è l indirizzo fisico della tabella di II livello da scandire con il valore TABLE per ottenere l indirizzo iniziale fisico della pagina cercata Se la dimensione della pagina è 4MB nei bit 31-22 è contenuto l indirizzo iniziale fisico pagina cercata Nel caso di indirizzamento a due livelli (pagine da 4KB) i due dati PCD e PWT indicano se gli elementi della tabella di II livello sono cacheable o meno e la politica di gestione (WT o BW). Escono sui relativi piedini del processore quando si accede all elemento in questione e sono utilizzati dalla cache di livello superiore. La cacheabilità e il PWT degli elementi della tabella di I livello è presente in CR3. Nel caso di indirizzamento a un solo livello i bit 21-12 non sono significativi e i segnali PCD/PWT hanno lo stesso significato dei corrispondenti bit del caso di II livello (ovvero riguardano i dati della pagina e non della tabella) 25

Tabelle delle Pagine (II livello se esiste) Page Table Entry (individuato dal campo Table dell indirizzo virtuale) Non usati inizialmente 31 12 Page base address 31:12 Avail D Utilizzabile dal software Dirty (scritta) Utilizzata Page cache disable Page write through User/Supervisor Scrivibile Presente V. dopo 11 9 8 7 6 5 4 3 2 1 A P C D P W U W P T Indicano se i dati della pagina sono cacheable o meno e se la politica è WB o WT. Escono sui relativi piedini per essere utilizzati dalla cache di II livello. Per la protezione (v. dopo) prima si verifica il descrittore poi il contenuto della protezione in pagina. Spesso per le tabelle delle pagine PWT=1: così facendo per le tabelle non vi sono problemi di write-back 26

Sharing e protezione Tabella delle pagine del processo 1 Tabella delle pagine del processo 2 Puntator1 Flags Bit di controllo Indirizzi di disco Memoria 27

Page fault I e II livello Cosa succede in caso di un page fault nei sistemi x86? L indirizzo lineare viene salvato automaticamente in CR2 (hardware) Viene generato un interrupt software n. 14 La routine di risposta deve leggere CR2 (v. dopo) Chiamata all OS per trovare una pagina libera o da sostituire Chiamata driver disco Al termine inserzione indirizzo iniziale nella tabella II livello IRET che fa tornare all istruzione che ha provocato il PF Il dato è ora presente 28

Tabelle delle pagine e caches Una tabella delle pagine di primo e secondo livello contiene informazioni che debbono potere essere lette e scritte dal OS e che come tali possono essere inserite in cache. La politica da usare a livello delle tabelle di I e II livello e delle pagine vere e proprie può esser stabilita a livello delle singole pagine Indirizzo fisico Registro di controllo CR3 31 12 11 5 4 3 2 Page directory base address Riservato 1/ i dati della tabella delle pagine di I livello possono essere cacheable o meno. Ovviamente se pagine da 4 MB le informazioni riguardano l unica tabella delle pagine Se cacheable politica WB o WT P C D P W T Riserv. La politica di gestione delle pagine puntate dalla tabella di I livello (tabelle di secondo livello) e delle pagine di dati/codice puntate dalle tabelle di secondo livello sono presenti nei descrittori di pagina L indirizzo iniziale fisico della tabella delle pagine di primo livello (124 elementi) (diverso per ogni processo) è contenuta nei 2 bit più significativi 29

Registri di sistema 31 RESERVED CR CR1 CR2 CR3 CR4 47 15 BASE BASE SELECTOR SELECTOR TR LDTR 16 15 LIMIT LIMIT GDTR IDTR Per il caricamento e la gestione dei registri di sistema esistono specifiche istruzioni (ex. LTR Load Task Register LGDT Load Global Descriptor Table etc.) GDTR e IDTR contengono indirizzi virtuali (page directory base in CR3) TR e LDTR contengono selettori 3

CR 31 329 181716 P G C N D W R A M R W P R 5 4 3 N E R T S 2 1 E M 1 P E R Reserved PG Paging enable CD Cache disable Bit di controllo della NW Not writethrough CACHE AM Alignment mask (align check) WP Write protect (non permette al supervisore di scrivere le pagine user) NE Numeric Error TS task switched (save e restore Floating Point) EM Escape Instruction Trapped PE Protection enabled NB: il paging ha senso solo se PE=1 31

Page Fault CR2 31 PAGE FAULT LINEAR ADDRESS 32

CR4 Registro di controllo CR4 31 7 6 5 4 3 2 1 Riservato Machine check enable (ex. disallineamento) Page Size (4K/4M) Debugging extensions Time stamp disable Protected Mode Virtual Interrupt Virtual 886 Mode Extensions Se il paging è disabilitato l indirizzo lineare coincide con quello fisico Con i sistemi x86 sono possibili sistemi solo segmentati, solo impaginati (definendo un solo segmento che contiene tutto) e sistemi segmentati e impaginati Nei sistemi più moderni il bit 7 indica se le tabelle per l impaginazione possono essere condivise da più processi. Il bit 5 permette l uso di indirizzi a 36 bit M C E P S E D E T S D P V I V M E 33