Che cos’è una fine anormale?

Una fine anormale è una cessazione improvvisa e inaspettata di un programma o di un’applicazione per computer funzionante. Il suo nome deriva originariamente dal vecchio sistema operativo IBM 360, che annotava tali terminazioni come errori ABEND. La fine anomala di un programma può verificarsi per molti motivi diversi, ma i motivi più comuni riguardano problemi con la memoria di sistema o problemi all’interno del codice del software. Quando si verifica questo tipo di terminazione, il programma si chiude da solo e il sistema operativo interviene per mitigare il danno svuotando la memoria del programma e comportandosi come se il programma si fosse chiuso correttamente in situazioni tipiche.

I problemi all’interno della memoria di sistema su un computer possono innescare un’interruzione anomala di uno o più programmi sul sistema. Quando il computer consente che si verifichi una perdita di memoria, ovvero quando consente a un programma di scrivere in una memoria che non gli è stata assegnata dal sistema operativo, può inavvertitamente sovrascrivere parti di memoria che appartenevano a un altro programma. Una volta che il programma “invaso” tenterà di recuperare le informazioni archiviate nelle sezioni di memoria invase, non troverà più i dati corretti e previsti. Questa discrepanza spesso si traduce in un arresto anomalo completo dell’applicazione, poiché non può essere eseguita utilizzando le informazioni sovrascritte salvate dal programma invasore.

I problemi con il codice software a volte possono causare la fine anomala di un programma. Se il software presenta bug o non contiene un codice di gestione degli errori sufficiente, input errati da parte dell’utente finale possono comportare una chiusura anomala del software. Ad esempio, un programma che chiede all’utente finale di inserire il proprio numero di telefono verrà solitamente codificato in modo tale che qualsiasi risposta non numerica che non contenga 10 cifre venga immediatamente “catturata” come un potenziale errore e restituita all’utente finale come un pessimo risultato. Il software immaturo o incompleto che non include questo codice di gestione degli errori potrebbe bloccarsi alla ricezione di input non corretti; il programma non sarà in grado di far fronte se l’utente finale decide di inserire “abcdefg” come numero di telefono presunto.

Una volta che si verifica una fine anomala, il sistema operativo di solito avvisa l’utente del computer che si è verificata una chiusura del programma. Dopo aver fatto ciò, il lavoro del sistema operativo è quello di riprendersi dall’arresto anomalo senza influire negativamente su nessuno degli altri programmi sul sistema. Per fare ciò, in genere libera la memoria che ha assegnato al programma, esattamente come farebbe se il programma fosse terminato correttamente. Le informazioni sulla chiusura anomala del programma vengono spesso salvate nei registri degli arresti anomali del sistema operativo, consentendo all’utente finale di rivedere le informazioni sull’arresto anomalo per cercare una potenziale causa principale del conflitto.