Отказы
Отказы
Неформально исключение это аномальное событие, прерывающее выполнение программы. Для получения содержательного определения полезно вначале рассмотреть понятие отказа, непосредственно следующее из идеи контракта.
Программа это не произвольная последовательность инструкций, а реализация некоторой спецификации - контракта программы. Всякий вызов программы должен завершаться в состоянии, удовлетворяющем постусловию и инварианту класса. Неявное следствие контракта - при вызове программы не должны появляться прерывания операционной системы, связанные, например, с обращением к недоступным областям памяти или переполнением при выполнении арифметических операций.
Так должно быть, но в жизни не все происходит так, как должно быть. И мы должны ожидать, что рано или поздно при очередном вызове программы она не сможет выполнить свой контракт. Произойдет системное прерывание, или будет вызвана программа в состоянии, не удовлетворяющем ее предусловию, или в заключительном состоянии будет нарушено постусловие либо инвариант (в двух последних случаях предполагается мониторинг утверждений в период выполнения).
Такие ситуации будем называть отказом (failure).
Определения: успех, отказ
Вызов программы успешен, если он завершается в состоянии, удовлетворяющем контракту. Вызов завершается отказом, если он не успешен.
Будем использовать термины "отказ программы" или просто "отказ", как сокращения более точного термина "вызов программы, завершающийся отказом". Понятно, что сама программа не может быть ни успешной, ни давать отказ. Эти понятия применимы только по отношению к конкретному вызову.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
9.2.3 Отказы при обращениях к страницам
9.2.3 Отказы при обращениях к страницам В системе встречаются два типа отказов при обращении к странице: отказы из-за отсутствия (недоступности) данных и отказы системы защиты. Поскольку программы обработки прерываний по отказу могут приостанавливать свое выполнение на
23.3.1. Отказы жесткого диска
23.3.1. Отказы жесткого диска Причина отказа жесткого диска кроется в ненадежной электронике или некачественном носителе (магнитных дисках, на которых, собственно, и хранится информация). На самом деле, что конкретно в винчестере вышло из строя, — не так важно, все равно
23.3.2. Отказы памяти
23.3.2. Отказы памяти При полном отказе оперативной памяти в процессе запуска системы (именно компьютера, а не Linux, поскольку до загрузки Linux дело не дойдет) вы услышите один длинный гудок системного динамика. Это сигнал о том, что пора менять модуль ОЗУ, но пока не спешите это