7.4.3.7. Задачи и процедуры
прерываний
Прерывание или исключение может вызвать программу
обработки, которая является
процедурой или задачей. Вентиль прерывания или вентиль ловушки
значением уровня привилегий, чем текущий уровень.
Нарушение этого правила приведет к запуску исключения общей защиты. Поскольку предсказать
появление прерывания
трудно, то существуют ограничения, накладываемые на уровни привилегий, на которых могут
исполняться процедуры обработки прерывания или исключения. Используйте один из
следующих методов для того, чтобы быть уверенным в отсутствии нарушения уровней привилегии:
располагайте процедуру обработки в сегменте с нулевым
уровнем привилегий;
располагайте процедуру обработки в согласованном сегменте.
Этот метод подходит
программам обработки определенных исключений, таких как ошибка деления на нуль. Подобная
программа должна использовать только данные из стека. Если же она нуждается в информации из
сегмента данных, то такой
сегмент должен иметь уровень привилегий 3, что делает его незащищенным.