Мегаобучалка Главная | О нас | Обратная связь


Выше приведенные инструкции зарезервированы «на будущее». Эти коды операций прерывания 6 не генерируют



2015-12-06 339 Обсуждений (0)
Выше приведенные инструкции зарезервированы «на будущее». Эти коды операций прерывания 6 не генерируют 0.00 из 5.00 0 оценок




Исключение 7 - Устройство недоступно

Сбой типа "устройство недоступно" генерируется при одном из двух следующих условий:

· Процессор выполняет команду ESC при установленном бите EM регистра CR0;

· Процессор выполняет команду WAIT или ESC при установленном бите TS регистра CR0.

Таким образом, прерывание 7 происходит, когда программист хочет, чтобы команда ESC обрабатывалась программно (бит EM установлен), либо когда встречена команда WAIT или ESC, а контекст модуля операций с плавающей точкой отличен от контекста для текущей задачи.

Для процессоров 80286 и 386 бит MP регистра CR0 используется с битом TS для определения того, должна ли команда WAIT генерировать исключение. Для программ, выполняемых на процессоре i486, бит MP должен быть установлен всегда.

Исключение 8 - Двойной сбой

Обычно когда процессор обнаруживает исключение при попытке вызвать обработчик исключения, происшедшей ранее, эти два исключения могут обрабатываться последовательно. Однако, если процессор не в состоянии этого сделать, он генерирует исключение двойного сбоя. Для того, чтобы определить, когда о двух сбоях следует сообщить как о двойном сбое, процессор делит исключения на три класса: незначительные исключения (1-7,16), значительные исключения (0,10-13) и страничные сбои (14).

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

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

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

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

Исключение 9 - (Резервируется Intel. Не использовать!)

Прерывание 9, аварийное завершение выхода за границы сегмента сопроцессора, генерируется в системе центрального процессора 386/математического сопроцессора 387, когда процессор 386 обнаруживает нарушение границы страницы или сегмента при пересылке средней части операнда математического сопроцессора 387. Это прерывание процессором i486+ не генерируется; вместо него происходит прерывание 13.

Исключение 10 - Неверный TSS

Сбой типа "неверный TSS" генерируется при попытке переключения задачи на сегмент с неверным TSS. TSS является неверным в случаях, описанных в таблице ниже. Код ошибки помещается в стек обработчика исключений, что помогает идентифицировать причину сбоя. Бит EXT указывает, что исключение было вызвано условием вне управления программы (например, внешнее прерывание, используя шлюз задачи, попыталось выполнить переключение задачи на неверный TSS).

--------------------------------------------------------------------------------------------------------------------------

Индекс кода ошибки Описание

--------------------------------------------------------------------------------------------------------------------------

Сегмент TSS Граница сегмента TSS меньше 67H

Сегмент LDT Неверная LDT или LDT не присутствует

Сегмент стека Селектор сегмента стека превышает границу таблицы дескрипторов

Сегмент стека Сегмент стека не доступен для записи

Сегмент стека DPL сегмента стека не совместим с CPL

Сегмент стека RPL селектора сегмента стека не совместим с CPL

Сегмент кода Селектор сегмента кода превышает границу таблицы дескрипторов

Сегмент кода Сегмент кода не является выполняемым

Сегмент кода DPL не конформного сегмента кода не равен CPL

Сегмент кода DPL конформного сегмента кода больше CPL

Сегмент данных Селектор сегмента данных превышает границу таблицы дескрипторов

Сегмент данных Сегмент данных не доступен для чтения

--------------------------------------------------------------------------------------------------------------------------

Данный сбой может происходить как в контексте исходной задачи, так и в контексте новой задачи. До тех пор, пока процессор полностью не убедится в присутствии нового TSS, исключение происходит в контексте исходной задачи. Как только присутствие нового TSS будет подтверждено, переключение задачи считается завершенным, т.е. регистр TR загружен селектором нового TSS, и если переключение задачи является следствием CALL или прерывания, то поле Компоновки нового TSS будет содержать ссылку на старый TSS. Любые ошибки, обнаруженные процессором после этой точки, обрабатываются в контексте новой задачи.

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



2015-12-06 339 Обсуждений (0)
Выше приведенные инструкции зарезервированы «на будущее». Эти коды операций прерывания 6 не генерируют 0.00 из 5.00 0 оценок









Обсуждение в статье: Выше приведенные инструкции зарезервированы «на будущее». Эти коды операций прерывания 6 не генерируют

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (339)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)