¿Qué es un final anormal?

Un final anormal es una terminación abrupta e inesperada de un programa o aplicación de computadora en funcionamiento. Su nombre deriva originalmente del antiguo sistema operativo IBM 360, que señalaba terminaciones como errores ABEND. Un final anormal de un programa puede ocurrir por muchas razones diferentes, pero las razones más comunes involucran problemas con la memoria del sistema o problemas dentro del código del software. Cuando se produce este tipo de terminación, el programa se cierra por sí solo y el sistema operativo interviene para mitigar el daño al vaciar la memoria del programa y actuar como si el programa se hubiera cerrado con éxito en situaciones típicas.

Los problemas dentro de la memoria del sistema en una computadora pueden desencadenar un final anormal de uno o más programas en el sistema. Cuando la computadora permite que se produzca una pérdida de memoria, cuando permite que un programa escriba en la memoria que no le ha sido asignada por el sistema operativo, puede sobrescribir inadvertidamente partes de la memoria que pertenecían a otro programa. Una vez que el programa «invadido» intenta recuperar la información almacenada en las secciones invadidas de la memoria, ya no encontrará los datos correctos y anticipados. Esta discrepancia a menudo da como resultado un bloqueo completo de la aplicación, ya que no puede ejecutarse utilizando la información sobrescrita guardada por el programa invasor.

Los problemas con el código de software a veces pueden desencadenar un final anormal de un programa. Si el software tiene errores o no contiene suficiente código de manejo de errores, las entradas incorrectas por parte del usuario final pueden resultar en una terminación anormal del software. Por ejemplo, un programa que le pide al usuario final que ingrese su número de teléfono generalmente se codificará de modo que cualquier respuesta no numérica que no contenga 10 dígitos se «detecte» inmediatamente como un error potencial y se devuelva al usuario final como un mal resultado. El software inmaduro o incompleto que no incluye este código de manejo de errores puede fallar al recibir una entrada incorrecta; el programa no podrá hacer frente si el usuario final decide ingresar «abcdefg» como su supuesto número de teléfono.

Una vez que ocurre un final anormal, el sistema operativo generalmente alerta al usuario de la computadora que se ha producido la finalización del programa. Después de hacer esto, el trabajo del sistema operativo es recuperarse del bloqueo sin afectar negativamente a ninguno de los otros programas del sistema. Para hacer esto, normalmente libera la memoria que asignó al programa, exactamente como lo haría si el programa hubiera terminado con éxito. La información sobre la terminación anormal del programa a menudo se guarda en los registros de fallas del sistema operativo, lo que permite al usuario final revisar la información de fallas para buscar una posible causa raíz del conflicto.