Che cos’è un errore di pagina?

Un errore di pagina è un’operazione che si verifica su un computer con memoria virtuale, una tecnica che consente a una parte di un disco rigido di aumentare la memoria fisica del computer. La maggior parte degli errori di pagina si verifica quando un programma tenta di accedere a informazioni che sono state inserite nel file di memoria virtuale sul disco rigido. Questa è una normale funzione della memoria virtuale e il computer risponderà caricando le informazioni appropriate nella memoria fisica. Un tipo più grave di errore di pagina associato a arresti anomali ed errori del computer può verificarsi quando un programma cerca informazioni in una posizione di memoria che non esiste o è protetta. Ciò può essere causato da hardware difettoso o software scritto male.

I moderni sistemi informatici dividono la memoria in blocchi più piccoli noti come pagine, con ogni pagina a cui si accede da un indirizzo specifico. La maggior parte dei sistemi supporta anche un concetto noto come memoria virtuale, in cui le pagine possono essere spostate dalla RAM (Random Access Memory) fisica del computer e in un file di memoria virtuale archiviato sul disco rigido del computer e nuovamente nella RAM secondo necessità. I dettagli di questo complesso schema di gestione della memoria sono nascosti dal software; un’applicazione non ha modo di sapere se una pagina a un determinato indirizzo è caricata o meno nella RAM o si trova nella memoria virtuale. Un errore di pagina si verifica quando un programma tenta di leggere o manipolare una porzione di memoria che non è caricata nella RAM o si trova a un indirizzo imprevisto.

Nonostante il nome inquietante, un errore di pagina è generalmente un’azione normale e prevista e la maggior parte delle volte un utente non noterà mai che si è verificato l’errore. È un tipo di operazione nota come “trappola”, il che significa che le istruzioni del programma che ha attivato l’errore vengono temporaneamente intercettate o intrappolate mentre il computer esamina l’indirizzo di memoria in questione. Se l’indirizzo è valido, ma non è attualmente caricato nella RAM del computer, le informazioni vengono trasferite dal file di memoria virtuale sul disco rigido alla memoria fisica e il programma riprende il normale funzionamento. Questo è noto come “swapping in” o “paging in” ed è comune a quasi tutti i personal computer, indipendentemente dal sistema operativo o dalla quantità di RAM installata. Troppa poca RAM, tuttavia, fa sì che il computer mischi costantemente le pagine di memoria tra il disco rigido e la memoria fisica, con conseguente peggioramento delle prestazioni.

Il secondo possibile esito di un page fault si verifica quando un indirizzo di memoria richiesto risulta non valido o protetto. Questo tipo di errore, noto anche come errore di segmentazione, può essere causato da moduli di memoria guasti, dischi rigidi difettosi o un software che si comporta in modo anomalo. Un segnale speciale viene inviato al programma che ha attivato l’errore, che di solito provoca l’arresto improvviso del programma. A seconda del sistema operativo, gli errori di pagina più gravi possono causare il malfunzionamento del sistema operativo di un computer, lasciando gli utenti con un criptico messaggio Blue Screen of Death (BSoD) o kernel panic.