русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Прерывание 8 - Двойной сбой


Дата добавления: 2015-06-12; просмотров: 618; Нарушение авторских прав


Обычно когда процессор обнаруживает исключение при попытке вызвать обработчик исключения, происшедшей ранее, эти два исключения могут обрабатываться последовательно. Однако, если процессор не в состоянии этого сделать, он генерирует исключение двойного сбоя. Для того, чтобы определить, когда о двух сбоях следует сообщить как о двойном сбое, процессор i486 делит исключения на три класса: незначительные исключения, значительные исключения и страничные сбои. Эта классификация показана в Таблице 9-4.

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

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

Таблица 9-4. Классы прерываний и исключений -----------------------------------------------------------------Класс Номер вектора Описание----------------------------------------------------------------- 1 Отладочные исключения 2 Немаскируемое прерываниеНезначительные 3 Контрольная точкаисключения 4 Переполнениеи прерывания 5 Контроль диапазона 6 Неверный код операции 7 Устройство недоступно 16 Ошибка операции с плавающей точкой----------------------------------------------------------------- 0 Ошибка деленияЗначительные 10 Неправильный TSSисключения 11 Сегмент не присутствует 12 Сбой в стеке 13 Общая защита-----------------------------------------------------------------Страничные 14 Страничный сбой (отсутствие страницы)сбои-----------------------------------------------------------------

Исходный сегмент страничного сбоя, встреченного при предварительной выборке команды, лежит вне домена Таблицы 9-4. Любые последующие сбои, генерируемые при попытках процессора передать управление соответствующему обработчику прерывания, могут также привести к ситуации двойного сбоя.



Процессор всегда помещает код ошибки в стек обработчика двойного сбоя, однако этот код ошибки всегда равен 0. Рестарт вызвавшей сбой команды невозможен. Если при попытке вызвать обработчик двойного сбоя произойдет еще одно исключение, процессор входит в режим закрытия системы. Этот режим аналогичен состоянию, следующему за выполнением команды HLT. Никакие дальнейшие команды не выполняются до приема немаскируемого прерывания или сигнала сброса системы RESET. Если закрытие системы происходит во время выполнения процессором обработчика немаскируемого прерывания, то рестарт процессора возможен только при помощи сигнала RESET. Процессор генерирует специальный цикл шины, указывающий на вхождение процессора в режим закрытия.



<== предыдущая лекция | следующая лекция ==>
Прерывание 6 - Неверный код операции | Прерывание 10 - Неверный TSS


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.13 сек.