Page fault: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m aggiungo uno spazio
m Eliminate D eufoniche non necessarie, corretto uso delle virgole e delle parentesi.
Riga 1:
Il '''page fault''' è un'[[eccezione (informatica)|eccezione]] di tipo ''trap'', generata quando un [[processo (informatica)|processo]] cerca di accedere ada una [[pagina (informatica)|pagina]] che è presente nel suo spazio di indirizzamento virtuale, ma che non è presente nella memoria fisica, poiché mai stata caricata in essa 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 si occupa del rilevamento dirileva uni page fault è il [[memory management unit]], mentre quello software di [[gestione delle eccezioni]] è generalmente parte del sistema operativo (kernel).
 
UnIl 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 un 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==
Dopo 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 framesframe liberi nella memoria fisica, (nellain qualecui 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 (informatica)|swap]] (in pratica,: la pagina da rimpiazzare viene copiata sulla memoria di massa, mentree 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 [[Memoria virtuale#Seconda scelta (Algoritmo dell'orologio)|della seconda opportunità]] (o ''second-chance''), l'algoritmo dell'orologio e l'algoritmo [[Least Recently Used|LRU]] (''Least Recently Used'').
 
*Riavvio dell'istruzione che era stata interrotta a causa del page fault.