Sommario:
- Definizione - Cosa significa Segmentazione Fault (Segfault)?
- Techopedia spiega Segmentation Fault (Segfault)
Definizione - Cosa significa Segmentazione Fault (Segfault)?
Un errore di segmentazione (segfault) è un errore restituito dall'hardware con protezione della memoria che comunica al sistema operativo che si è verificata una violazione dell'accesso alla memoria. Il sistema operativo di solito reagisce raccontando il processo offensivo sull'errore attraverso un segnale e quindi il sistema operativo esegue una sorta di azione correttiva. Ciò accade perché un processo o un programma tenta di accedere alla memoria che non gli è stata assegnata.
Un errore di segmentazione è anche noto come violazione di accesso.
Techopedia spiega Segmentation Fault (Segfault)
Un errore di segmentazione è spesso causato da errori nella programmazione di un processo o di un'applicazione in cui il programma è portato ad accedere alla memoria che non è stata allocata per esso ma per altri programmi o per il sistema stesso. A un processo non è consentito toccare la memoria non riservata, poiché deve sempre richiedere memoria prima di utilizzarla. Pertanto, quando tocca accidentalmente la memoria che non gli è stata assegnata, si verifica una violazione di accesso.
I Segfault possono anche essere causati da una funzione ricorsiva, che può utilizzare tutto lo spazio dello stack a cui è assegnato e invadere rapidamente la memoria non assegnata ad esso. In alcuni sistemi, questo è considerato un overflow dello stack, ma per altri è semplicemente una sorta di violazione dell'accesso.
Un errore di segmentazione può essere gestito da un processo tramite un gestore di segnali personalizzato, ma spesso viene utilizzato il gestore di segnali predefinito del sistema operativo, il che di solito comporta la chiusura anomala del processo in questione, chiamato arresto anomalo, o il sistema operativo che forza un dump principale .