Differenza tra Page Fault e Hard Fault in informatica

Differenza tra Page Fault e Hard Fault in informatica

Nei sistemi operativi, ad ogni pagina è stato assegnato un frame nella memoria principale e quando un thread tenta di fare riferimento a una pagina il cui frame non si trova nella memoria principale, si verifica un page fault. Se la pagina non è veramente presente nella memoria fisica e deve essere recuperata da un archivio secondario, come un disco rigido, si verifica l’errore classificato come errore di pagina hardware.

Page fault o errore di pagina

Un errore di pagina, in inglese page fault, è un tipo di eccezione avviata dall’hardware di un computer per notificare al sistema operativo i riferimenti a pagine senza frame. In poche parole, si verifica un errore di pagina quando un programma tenta di accedere ai dati che risiedono in una pagina che non è archiviata nella memoria principale o nella memoria fisica. Supponiamo che un particolare programma abbia cinque pagine di cui due vengono caricate nella memoria principale in due frame separati. Quindi, quando una nuova pagina viene chiamata dalla CPU, potrebbe verificarsi una delle poche cose. Se quella pagina non si trova nella memoria principale, si chiama errore di pagina. Quindi, quando la CPU richiede l’esecuzione di una determinata pagina, ma la pagina non è disponibile nella memoria principale, si verifica un errore di pagina. La pagina risiede effettivamente nella memoria secondaria o nella memoria virtuale. L’intero meccanismo è gestito dall’hardware della MMU (Memory Management Unit).

Differenza tra Page Fault e Hard Fault in informatica

Hard Fault

Se la pagina desiderata non è presente nella memoria principale e deve essere recuperata o impaginata dalla memoria virtuale, l’errore viene classificato come errore di pagina “hard” o grave (hard page fault). Ogni voce della tabella delle pagine ha un bit di validità, che indica se alla pagina è stato assegnato un frame nella memoria principale. Pertanto, quando un programma fa riferimento a una pagina il cui bit di validità è zero, si verifica un errore di pagina. Successivamente interviene il SO che assegna alla pagina un frame adeguato. La voce della tabella delle pagine in realtà ci dice che la pagina è su disco. Quindi, quando una pagina desiderata non viene trovata nella memoria principale e viene invece sostituita con il file di pagina sul disco, si verifica un errore di pagina hardware. Il sistema operativo deve recuperare la pagina dal sottosistema del disco, il che fa sì che il programma attenda in modo significativo, il che a sua volta riduce le prestazioni. Se la pagina risiede nella memoria cache, si verifica un errore di pagina (non grave).

Differenza tra Page Fault e Hard Fault

L’errore di pagina è uno dei problemi più comuni di gestione della memoria quando si ha a che fare con la memoria virtuale o la memoria secondaria. Un errore di pagina, al contrario di quanto suggerisce il nome, non è effettivamente un errore; è un’eccezione che si verifica quando un programma tenta di accedere a un indirizzo su una pagina che non è disponibile nella memoria principale in cui dovrebbe trovarsi. La MMU quindi segnala alla CPU l’errore di pagina e la CPU quindi richiede al sistema operativo di individuare la pagina in memoria mentre il thread va in attesa. Quindi, il sistema operativo individua la pagina desiderata in un’altra parte della memoria fisica o, nel peggiore dei casi, la trova sul disco, nel qual caso l’errore viene chiamato errore di pagina hardware. Il sistema operativo quindi assegna un frame adatto alla pagina e aggiorna la tabella delle pagine. L’intero meccanismo è gestito da un modulo chiamato gestore pagefault.

Eccezione 

Un errore di pagina è un tipo di eccezione che si verifica quando un programma tenta di accedere a una pagina che si trova nel suo spazio degli indirizzi, ma non si trova nella memoria principale o nella memoria fisica. Quindi, quando la CPU richiede l’esecuzione di una determinata pagina, ma la pagina non è disponibile nella memoria principale, si verifica un errore di pagina. Se la pagina desiderata non è presente nella memoria principale e deve essere recuperata o impaginata dalla memoria virtuale, l’errore viene classificato come errore di pagina “hard”. In poche parole, se la pagina deve essere recuperata dal disco, si verifica un errore di pagina hardware.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *