/>Механизм выполнения команды IRET
Механизм выполнения команды IRET определяется способом вызова процедуры обработки прерывания.
Если переход на программу обработки был произведен с использованием механизма переключения программ, то и возврат на исходную программу производится переключением задач.
Если переключение задач вызывается командами CALL, командой вызова прерываний, например, INT n, или прерыванием, то процессор устанавливает бит вложенности NT в регистре флагов FLAGS и бит занятости B в поле прав доступа дескриптора. Затем записывает селектор дескриптора TSS прерываемой программы в специальное поле "селектора возврата" TSS принимающей программы, и производится процедура переключения задач по схеме 3. 10. После этого обе задачи становятся занятыми. Это запрещает применение рекурсивных процедур и реентерабельных программ.
Если переключение задач вызывает команда JMP, то селектор возврата, бит вложенности и бит занятости не устанавливаются.
При выполнении команды возврата процессор проверяет бит вложенности (NT) и выбирает механизм перехода. В случае использования переключения задач читается селектор TSS программы возврата.
Отсутствие прямого взаимодействия программ при переходах с использованием механизма переключения задач позволяет значительно смягчить требования к доступности программ по условиям корректности переходов с изменением уровня привилегий. Но все проверки, непосредственно не связанные с уровнями привилегий, выполняются в том же объеме.
Но по чтению и по записи TSS программно недоступен. Создание, модификацию и чтение TSS операционные системы могут производить путем отображения в тот же адрес памяти дескриптора сегмента данных.
Вопросы для самопроверки:
1. Назначение дескриптора сегментов в защищ
Страницы: << < 21 | 22 | 23 | 24 | 25 > >>