Jump to content

Сбой (вычисления)

(Перенаправлено с сайта «Сбой программы» )

отображается паника ядра На iMac . Это наиболее распространенная форма сбоя операционной системы в Unix-подобных системах.

В вычислительной технике сбой перестает или сбой системы происходит, когда компьютерная программа, такая как программное обеспечение или операционная система, работать должным образом и завершает работу . В некоторых операционных системах или отдельных приложениях служба отчетов о сбоях сообщает о сбое и любых деталях, связанных с ним (или дает пользователю возможность сделать это), обычно разработчику (ам) приложения. Если программа является важной частью операционной системы, вся система может выйти из строя или зависнуть, что часто приводит к панике ядра или фатальной системной ошибке .

Большинство сбоев являются результатом программной ошибки . Типичные причины включают доступ к неверным адресам памяти, [а] неправильные значения адреса в программном счетчике , переполнение буфера , перезапись части затронутого программного кода из-за более ранней ошибки, выполнение недопустимых машинных инструкций ( незаконный или несанкционированный код операции) или запуск необработанного исключения . Причиной сбоя обычно считается исходная программная ошибка, вызвавшая эту цепочку событий, которая обнаруживается в процессе отладки . Исходная ошибка может быть далека от кода , который фактически вызвал сбой.

В ранних персональных компьютерах попытка записи данных на аппаратные адреса за пределами основной памяти системы могла привести к повреждению оборудования. Некоторые сбои могут быть использованы и позволяют вредоносной программе или хакеру выполнить произвольный код , что позволяет копировать вирусы или получать данные, которые обычно были бы недоступны.

Приложение выходит из строя

[ редактировать ]
Дисплей в аэропорту Франкфурта, на котором запущена программа под Windows XP , которая вышла из строя из-за нарушения доступа к чтению памяти.

Приложение обычно выходит из строя, когда оно выполняет операцию, не разрешенную операционной системой. Затем операционная система запускает исключение или сигнал в приложении. Приложения Unix традиционно реагировали на сигнал сбросом ядра . Windows и Unix Большинство приложений с графическим пользовательским интерфейсом в ответ отображают диалоговое окно (например, показанное справа) с возможностью подключения отладчика , если он установлен. Некоторые приложения пытаются восстановиться после ошибки и продолжают работу, а не завершают работу .

Приложение также может содержать код, приводящий к сбою. [б] после обнаружения серьезной ошибки.

К типичным ошибкам, приводящим к сбою приложения, относятся:

  • попытка чтения или записи памяти, которая не выделена для чтения или записи этим приложением (например, ошибка сегментации , специфичная для x86 , общая ошибка защиты )
  • попытка выполнить привилегированные или недействительные инструкции
  • попытка выполнить операции ввода-вывода на аппаратных устройствах, к которым у него нет разрешения на доступ
  • передача недопустимых аргументов в системные вызовы
  • попытка получить доступ к другим системным ресурсам, к которым у приложения нет разрешения на доступ
  • попытка выполнить машинные инструкции с неверными аргументами (в зависимости от архитектуры ЦП): деление на ноль , операции с ненормальными числами или значениями NaN (не числа), доступ к памяти по невыровненным адресам и т. д.

Вылет на рабочий стол

[ редактировать ]

Говорят, что «вылет на рабочий стол» происходит, когда программа (обычно видеоигра ) неожиданно завершает работу, резко возвращая пользователя обратно на рабочий стол . Обычно этот термин применяется только к сбоям, при которых ошибки не отображаются, поэтому все, что пользователь видит в результате сбоя, — это рабочий стол. Во многих случаях нет видимых действий, которые вызывают сбой на рабочем столе. Во время нормальной работы программа может зависнуть на более короткий период времени, а затем закрыться сама. Также во время нормальной работы программа может отображать черный экран и неоднократно воспроизводить последние несколько секунд звука (в зависимости от размера аудиобуфера ) , который воспроизводился до того, как она вылетела на рабочий стол. В других случаях может показаться, что это вызвано определенным действием, например загрузкой области.

Ошибки, связанные с выходом на рабочий стол, считаются особенно проблематичными для пользователей. Поскольку они часто не отображают никаких сообщений об ошибках, может быть очень сложно отследить источник проблемы, особенно если время их возникновения и действия, происходящие непосредственно перед сбоем, не имеют какой-либо закономерности или общей точки зрения. Один из способов выявить источник проблемы игр — запустить их в оконном режиме. В Windows Vista есть функция, которая может помочь отследить причину проблемы CTD, когда она возникает в любой программе. [ нужны разъяснения ] Windows XP также включала аналогичную функцию. [ нужны разъяснения ]

Некоторые компьютерные программы, такие как StepMania от BBC и Bamzooki , также вылетают на рабочий стол в полноэкранном режиме, но отображают ошибку в отдельном окне, когда пользователь возвращается на рабочий стол.

Веб-сервер выходит из строя

[ редактировать ]

Программное обеспечение, на котором работает веб-сервер веб- сайта, может выйти из строя, что сделает его полностью недоступным или выдаст только сообщение об ошибке вместо обычного контента.

Например: если сайт использует базу данных SQL (например, MySQL ) для сценария (например, PHP ) и этот сервер базы данных SQL выходит из строя, то PHP отобразит ошибку соединения.

Сбой операционной системы

[ редактировать ]
Синий экран смерти , отображаемый в Windows XP, Vista и 7
Паника ядра, отображаемая в OS X Mountain Lion

Сбой операционной системы обычно происходит, когда возникает аппаратное исключение , которое невозможно обработать . Сбои операционной системы также могут произойти, когда внутренняя логика проверки работоспособности операционной системы обнаруживает, что операционная система потеряла свою внутреннюю самосогласованность.

Современные многозадачные операционные системы, такие как Linux и macOS , обычно остаются невредимыми при сбое прикладной программы.

Некоторые операционные системы, например z/OS , имеют средства обеспечения надежности, доступности и удобства обслуживания (RAS), и ОС может восстанавливаться после сбоя критического компонента, будь то из-за сбоя оборудования, например, неисправимой ошибки ECC, или сбоя программного обеспечения. , например, ссылка на неназначенную страницу.

Ненормальный конец

[ редактировать ]

Ненормальное завершение или ABEND — это ненормальное завершение работы программного обеспечения или сбой программы. Ошибки или сбои в сетевой операционной системе Novell NetWare обычно называются ABEND. сообщества администраторов NetWare В Интернете возникли , такие как abend.org .

Такое использование происходит от макроса ABEND IBM OS/360 , ..., z/OS в операционных системах . Обычно пишется с заглавной буквы, но может означать «abend». Некоторыми распространенными кодами ABEND являются системные ABEND 0C7 (исключение данных) и системные ABEND 0CB ( деление на ноль ). [1] [2] [3] Прерывания могут быть «мягкими» (позволяющими автоматическое восстановление) или «жесткими» (прекращающими действие). [4] В шутку утверждается, что этот термин произошел от немецкого слова « Abend », означающего «вечер». [5]

Последствия сбоев для безопасности и конфиденциальности

[ редактировать ]

пользователя В зависимости от приложения сбой может содержать конфиденциальную и личную информацию . [6] Более того, многие программные ошибки, вызывающие сбои, также могут быть использованы для выполнения произвольного кода и других типов повышения привилегий . [7] [8] Например, переполнение буфера стека может перезаписать адрес возврата подпрограммы недопустимым значением, что приведет, например, к ошибке сегментации , когда подпрограмма вернется. Однако если эксплойт перезапишет адрес возврата допустимым значением, код по этому адресу будет выполнен.

Воспроизведение сбоя

[ редактировать ]

Когда сбои собираются в полевых условиях с помощью средства отчетов о сбоях , следующим шагом для разработчиков является возможность воспроизвести их локально. Для этого существует несколько методик: STAR использует символическое исполнение, [9] EvoCrash выполняет эволюционный поиск. [10]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Типы недействительных адресов включают:
  2. ^ В OS/360 и последующих версиях приложение обычно использует макрос ABEND с пользовательским кодом завершения.
  1. ^ «АБЕНД» (PDF) . Выпуск ОС 21 — Операционная система System/360 — Службы Supervisor и инструкции по макросам (PDF) (Восьмое изд.). ИБМ . Сентябрь 1974 г., стр. 97–99. GC28-6646-7 . Проверено 8 июля 2023 г.
  2. ^ «0Cx — системные коды z/OS MVS» . ИБМ.
  3. ^ Список кодов ABEND. Архивировано 16 сентября 2018 г. на Wayback Machine на сайте madisoncollege.edu.
  4. ^ Парциале, Лидия (2008). Операции с z/VM и Linux для системных программистов z/OS . Красные книги IBM. ISBN  9780738431598 . страница 352
  5. «Abend». Архивировано 29 сентября 2011 г., в Wayback Machine на словаре.die.net.
  6. ^ Сатват, Киаваш; Саксена, Нитеш (2018). «Нарушение конфиденциальности: вскрытие просочившихся отчетов о сбоях веб-браузера». arXiv : 1808.01718 [ cs.CR ].
  7. ^ «Анализ сбоев, чтобы найти уязвимости безопасности в ваших приложениях» . Msdn.microsoft.com. 26 апреля 2007 г. Архивировано из оригинала 11 декабря 2011 г. Проверено 26 июня 2014 г.
  8. ^ «Джесси Рудерман »Ошибки безопасности памяти в коде C++» . Squarefree.com. 1 ноября 2006 г. Архивировано из оригинала 11 декабря 2013 г. . Проверено 26 июня 2014 г.
  9. ^ Чен, Нин; Ким, Сонхун (2015). «STAR: автоматическое воспроизведение сбоев на основе трассировки стека посредством символического выполнения». Транзакции IEEE по разработке программного обеспечения . 41 (2): 198–220. дои : 10.1109/TSE.2014.2363469 . ISSN   0098-5589 . S2CID   6299263 .
  10. ^ Солтани, Можан; Паничелла, Аннибале; ван Дёрсен, Ари (2017). «Управляемый генетический алгоритм для автоматического воспроизведения сбоев». IEEE/ACM, 2017 г. 39-я Международная конференция по программной инженерии (ICSE ) стр. 209–220. дои : 10.1109/ICSE.2017.27 . ISBN  978-1-5386-3868-2 . S2CID   199514177 . Архивировано из оригинала 25 января 2022 года . Проверено 21 декабря 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5faef30e5e0fb3b88d91223a4391a9c2__1716829320
URL1:https://arc.ask3.ru/arc/aa/5f/c2/5faef30e5e0fb3b88d91223a4391a9c2.html
Заголовок, (Title) документа по адресу, URL1:
Crash (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)