Co to jest nienormalny koniec?
Nienormalny koniec to nagłe i nieoczekiwane zakończenie działającego programu lub aplikacji komputerowej. Jego nazwa pochodzi od starszego systemu operacyjnego IBM 360, który odnotował takie zakończenia, jak błędy ABEND. Nietypowy koniec programu może wystąpić z wielu różnych powodów, ale najczęstsze przyczyny to problemy z pamięcią systemową lub problemy z kodem oprogramowania. Gdy tego rodzaju zakończenie ma miejsce, program sam się zamyka, a system operacyjny wkracza w celu zmniejszenia szkód poprzez opróżnienie pamięci programu i działanie tak, jakby program zakończył się pomyślnie w typowych sytuacjach.
Problemy z pamięcią systemową komputera mogą powodować nieprawidłowe zakończenie jednego lub kilku programów w systemie. Gdy komputer zezwala na wystąpienie wycieku pamięci - gdy pozwala programowi na zapis do pamięci, która nie została mu przypisana przez system operacyjny - może przypadkowo zastąpić części pamięci należące do innego programu. Gdy program „najechany” spróbuje odzyskać informacje przechowywane w zaatakowanych sekcjach pamięci, nie będzie już znajdować poprawnych, oczekiwanych danych. Ta rozbieżność często powoduje całkowite zawieszenie aplikacji, ponieważ nie można jej uruchomić przy użyciu zastąpionych informacji zapisanych przez program atakujący.
Problemy z kodem oprogramowania mogą czasami powodować nienormalne zakończenie programu. Jeśli oprogramowanie zawiera błędy lub nie zawiera wystarczającego kodu obsługi błędów, nieprawidłowe dane wprowadzone przez użytkownika końcowego mogą spowodować nieprawidłowe zakończenie działania oprogramowania. Na przykład program, który prosi użytkownika końcowego o wpisanie swojego numeru telefonu, będzie zwykle kodowany, aby każda odpowiedź nienumeryczna, która nie zawiera 10 cyfr, była natychmiast „wychwytywana” jako potencjalny błąd i zwracana użytkownikowi końcowemu jako zły wynik. Niedojrzałe lub niekompletne oprogramowanie, które nie zawiera tego kodu obsługi błędów, może ulec awarii po otrzymaniu nieprawidłowych danych wejściowych; program nie będzie w stanie sobie poradzić, jeśli użytkownik końcowy zdecyduje się wpisać „abcdefg” jako swój domniemany numer telefonu.
Gdy wystąpi nietypowy koniec, system operacyjny zwykle ostrzega użytkownika komputera o zakończeniu programu. Po wykonaniu tej czynności zadaniem systemu operacyjnego jest odzyskanie systemu po awarii bez negatywnego wpływu na inne programy w systemie. W tym celu zazwyczaj zwalnia pamięć przypisaną do programu, dokładnie tak, jak gdyby program zakończył się pomyślnie. Informacje o nieprawidłowym zakończeniu programu są często zapisywane w dziennikach awarii systemu operacyjnego, umożliwiając użytkownikowi końcowemu przejrzenie informacji o awarii w celu znalezienia potencjalnej pierwotnej przyczyny konfliktu.