Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ORGANIZATsIYa_EVM.doc
Скачиваний:
64
Добавлен:
29.03.2016
Размер:
3.99 Mб
Скачать

Переключение задачи.

Процессор выполняет следующие операции при переключении к новой задаче.

  1. Получает селектор сегмента для нового задания как операнд команд УМР, или CALL, или из шлюза задачи или по командеIRET(возврата).

  2. Проверяет, что текущей задаче разрешено переключение к новой задаче. Управление привилегиями доступа к данным контролирует исполнением УМР, и CALLинструкции (доп.п.2)CPLтекущей задачи иRPLселектора сегмента (для нового задания должны быть меньше чем величинаDPLв дескрипторе)

Исключения, прерывания (за исключением прерываний генерируемых командой INTn) и командаIRETвыполняют переключения независимо отDPL, указанных в шлюзе или дескриптореTSS.

  1. Проверяется, что дескриптор TSSнового задания отменен как присутствующий и значения пределаnoneLimit=>67.

  2. Контролируется, что новое задание доступно (Call, УМР, прерывание или исключение)

  3. Проверяется, что текущее TSS, новыеTSSи все дескрипторы сегментов используемые при переключении находятся в системной памяти.

  4. Если переключение было инициировано УМР или IRET, процессор устанавливает битBUSY(занято) в О. в текущем дескриптореTSSзадачи. Если инициировано командойCALL, исключением или прерыванием «В» флаг (занято) остается установленным.

  5. Если переключение было инициировано IRET, процессор чиститNTфлаг во времени регистре Флагов, если инициированоCALLили УМР, исключением или прерываниемNTфлаг не изменяется.

  6. Сохраняется состояние текущей задачи в текущем сегменте TSS. Процессор находит базовый адрес текущего сегментаTSSв регистре задачи и затем копирует состояние следующих регистров в текущий сегментTSS: регистры общего назначения, селекторы сегментов из сегментных регистров, регистр флагов, регистрIP.

  7. Если переключение было инициировано CALLинструкцией, исключением или прерыванием процессор устанавливаетNTфлаг в регистре флагов сохраняемом вTSSнового задания если инициированоIRET, процессор восстанавливаетNTфлаг из регистра Флагов сохраняемом в стеке. Если инициировано УМР,NTфлаг остается без изменения.

  8. Если переключение задания было инициировано CALL, УМР, исключением или прерыванием процессор устанавливает В (занято) в новом дескриптореTSS, если инициироватьIRETВ (занято) остается установленным.

  9. Устанавливает TSSфлаг в управляющем регистреGROс целью дать возможность устройству с плавающей точкой не прерывать работу при переключении задачи, а в случае необходимости т.е. операцииFPOв новой задаче доступ кFPOбудет осуществлен только через исключениеNH(TS=1 запрещ.FPO), которое вызовет образование этого исключения, в котором используя системную командуCLTS, установит битTSвGROв «О» сохранит состояниеFPO, и даст возможность выполнить операцииFPOв новой задаче.

  10. Загружает регистр задачи селектором сегмента и дескриптор для нового TSS/

  1. Загружает новое состояние из TSSв процессор. Любая ошибка, соответствующая загрузке квалифицируется в контексте новой задачи.

  2. Начинается выполнение нового задания.

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]