Perché I Programmi Si Bloccano?

Perché I Programmi Si Bloccano?
Perché I Programmi Si Bloccano?

Video: Perché I Programmi Si Bloccano?

Video: Perché I Programmi Si Bloccano?
Video: Windows 10 si blocca? come risolvere- Tutorial (ITA) 2024, Novembre
Anonim

La varietà di compiti risolti oggi con l'aiuto di personal computer è fornita dall'esistenza di un enorme insieme di programmi applicativi. La comodità di lavorare con il software dipende in gran parte dalla sua affidabilità, che si esprime in assenza di situazioni di emergenza. Tuttavia, molti programmi si bloccano nel momento più inopportuno. Come mai?

Perché
Perché

Il meccanismo di eccezione viene utilizzato per tracciare e gestire situazioni speciali, anormali o errate che si verificano durante il funzionamento dei programmi per computer sotto il controllo dei moderni sistemi operativi. Le eccezioni possono essere hardware (generate dal processore) e software (generate dall'applicazione stessa o da qualche componente esterno plug-in).

Indipendentemente dal tipo, l'eccezione può essere rilevata e gestita correttamente. Le eccezioni non rilevate vanno al gestore della libreria di runtime di root o a un gestore installato dal sistema operativo. Se ciò accade, il programma si blocca con un messaggio o una finestra di chiusura anomala (in Windows). Se il gestore del sistema operativo non funziona (ad esempio, è stato deliberatamente rimosso), il programma "si arresta in modo automatico". Pertanto, i programmi si bloccano a causa di eccezioni che non possono essere gestite. Le ragioni per il verificarsi di eccezioni sono diverse.

Nella stragrande maggioranza dei casi, i programmi si bloccano a causa dell'esecuzione del proprio codice contenente errori di implementazione espliciti o impliciti. L'elenco delle possibili cause di emergenza è molto lungo. Questi sono sia classici errori di operazioni sui numeri in virgola mobile (ad esempio, divisione per 0), sia errori di lavoro con la memoria (lettura o scrittura al di fuori dello spazio degli indirizzi del processo, accesso a pagine protette, scrittura in un'area di memoria di sola lettura), stack di overflow a causa della ricorsione infinita, ecc. In questi casi, vengono generate eccezioni hardware o eccezioni del sistema operativo.

Gli errori impliciti includono vari casi di filtraggio insufficiente dei dati di input, mancanza di convalida dei valori del puntatore e molto altro. Tali carenze portano a situazioni eccezionali solo in alcuni casi.

Gli errori di implementazione possono essere trovati anche nei componenti esterni utilizzati dall'applicazione. Ad esempio, in librerie dinamiche che forniscono le funzionalità necessarie o moduli aggiuntivi. Il codice di programma che viene caricato implicitamente nello spazio degli indirizzi di un processo (ad esempio, per intercettare determinate funzioni API) può anche causare l'arresto anomalo del programma.

Molti componenti e librerie (ad esempio, ADO su Windows) utilizzano il meccanismo di eccezione programmatica come priorità per la segnalazione degli errori. L'assenza o la gestione incompleta delle eccezioni da parte di questo tipo di applicazione può portare al suo crash anche in situazioni del tutto innocue (come la perdita di connessione al database).

Consigliato: