Il page fault รจ un'eccezione di tipo trap, generata quando un processo cerca di accedere a una pagina che รจ presente nel suo spazio di indirizzamento virtuale, ma che non รจ presente nella memoria fisica poichรฉ mai stata caricata o perchรฉ precedentemente spostata su disco di archiviazione. Tipicamente, il sistema operativo tenta di risolvere il page fault caricando la pagina richiesta nella memoria virtuale oppure terminando il processo in caso di accesso illegale. Il componente hardware che rileva i page fault รจ il memory management unit, mentre quello software di gestione delle eccezioni รจ generalmente parte del sistema operativo (kernel).
Il page fault รจ molto sconveniente, poichรฉ la pagina che non viene trovata nella memoria virtuale deve successivamente essere cercata, con gli opportuni controlli, e caricata in essa: ciรฒ implica l'accesso alla memoria di massa, comunemente un hard disk), che รจ molto costoso in termini di tempo. Inoltre un numero eccessivo di pagine mancanti puรฒ comportare fenomeni di thrashing, ossia di paginazione degenere, con conseguente degradazione delle prestazioni del sistema operativo.
Gestione
modificaDopo il verificarsi di un page fault, vengono eseguite le seguenti operazioni:
- Controllo della tabella interna del processo, solitamente salvata con il process control block: se l'accesso alla memoria era illegale, il processo viene arrestato, altrimenti si provvede al caricamento della pagina richiesta, ricercandola nella memoria di massa.
- Ricerca di un frame libero e caricamento della pagina nella memoria fisica: se ci sono frame liberi nella memoria fisica, in cui sono presenti le pagine utilizzate dai processi, la pagina mancante viene immediatamente copiata in essa e la tabella delle pagine aggiornata; in caso contrario il sistema operativo esegue un algoritmo di sostituzione delle pagine che sceglie la pagina da rimpiazzare ("vittima") secondo determinate politiche di sostituzione e la scambia con la pagina richiesta tramite swap: la pagina da rimpiazzare viene copiata sulla memoria di massa e al suo posto la pagina cercata viene caricata in memoria. Tra gli algoritmi di sostituzione delle pagine comunemente usati vi sono l'algoritmo FIFO (facile da implementare, ma che soffre dell'anomalia di Belady), l'algoritmo della seconda opportunitร (o second-chance), l'algoritmo dell'orologio e l'algoritmo LRU (Least Recently Used).
- Riavvio dell'istruzione che era stata interrotta a causa del page fault.
Bibliografia
modifica- Abraham Silberschatz, Peter Baer Galvin e Greg Gagne, Sistemi operativi - Concetti ed esempi, 7ยช ed., Pearson Education Italia, 2006. ISBN 9788871922331
Collegamenti esterni
modifica- Memoria virtuale: Dettagli, su web.mit.edu, Massachusetts Institute of Technology. URL consultato il 3 dicembre 2011 (archiviato dall'url originale il 9 agosto 2011).








