Отказ от ответственности
- 1 year ago
- 0
- 0
Аварийный отказ (также катастрофический отказ , авария , фатальный сбой , разг. крах , вылет , падение , крэш англ. crash ) — это аварийное завершение программы или операционной системы , когда они перестают нормально функционировать.
Часто программа зависает , пока не будет создан отчёт об ошибке с подробностями отказа.
Если программа является важной частью операционной системы, вся система может аварийно завершить работу или зависнуть в результате паники ядра или фатальной системной ошибки.
Большинство отказов являются результатом выполнения недопустимых машинных инструкций . Например, когда счётчик команд установлен на неправильный адрес , или в результате переполнения буфера перезаписывается часть данных программы из-за ошибки . Это приводит к доступу к случайным значениям данных в памяти , которые уже не соответствуют начальному запросу, и происходит обработка исключений в процессоре .
Исходная ошибка программного обеспечения, которая запустила эту цепочку событий, как правило, считается причиной сбоя, который обнаруживается в процессе отладки . Это часто далеко не очевидно, так как исходная ошибка может быть далека от события сбоя и казаться совершенно корректным исходным кодом .
Приложение обычно завершает работу, когда оно выполняет операцию, которая не разрешена операционной системой. Затем операционная система запускает в приложении исключение или сигнал .
Unix приложения традиционно отвечают на сигнал с помощью дампа памяти . Большинство Windows и Unix приложений с графическим интерфейсом пользователя отвечают отображением диалогового окна с возможностью подключения отладчика , если он установлен.
Некоторые приложения пытаются восстановиться после ошибки и продолжить работу вместо выхода.
Типичные ошибки, приводящие к сбоям приложений, включают:
Приложение, запущенное на веб-сервере , может отказать, и сайт может не работать или показывать сообщение с ошибкой.
К примеру, если сайт, использующий базу данных SQL (например MySQL ) использует скрипт (например на PHP ), и этот сервер упадёт, то PHP выдаст ошибку подключения.