Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiVM / OSISP / Лекции_ОССП_Р2.pdf
Скачиваний:
95
Добавлен:
11.05.2015
Размер:
1.33 Mб
Скачать

Когда переключение задач инициируется командой far call, аппаратным прерыванием или особым случаем, задача, на которую инициируется переключение, считается вложенной в ту задачу, из которой произошло переключение. Это похоже на вызов подпрограмм.

Когда вложенная задача выполнила команду iret, процессор автоматически переключается на прерванную задачу. Глубина вложенности не ограничивается.

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

Рис. 9.18. Цепь из трех вложенных задач

Переключение на задачу А было проведено с помощью команды far jmp, т.к. бит NT=0, а далее эта задача вызвала следующую с помощью команды far call. Биты вложенности устанавливается в 1, а поле обратной связи указывает на предыдущую задачу. Но для всех этих задач остается включенным бит занятости в дескрипторе сегмента TSS.

Фактически вложенность задач учитывает только команда IRET, обычная команда возврата из подпрограммы RET вложенности не учитывает.

9.1.4.9 Двоичная карта разрешения ввода-вывода

Последнее 16-битное слово в базовом TSS содержит смещение начала двоичной карты разрешения ввода-вывода. Она является дополнительным средством механизма защиты по привилегиям. Такая карта создается для каждой задачи и участвует в контроле привилегии команд ввода-вывода.

В двоичной карте каждый бит соответствует одному адресу ввода-вывода, то есть байтному порту ввода-вывода. Младший бит первого байта карты отно-

139

Соседние файлы в папке OSISP