Содержание
- 2. Системное программное обеспечение не может непосредственно изменить состояние бита VM (например, при помощи POPFD). Вместо этого
- 3. Процессор прекращает выполнять задачу в состоянии V86 только при возникновении прерывания или исключения в следующих случаях:
- 4. Монитор V86 Для полноценного выполнения программы для МП 8086 задача в состоянии V86, описываемая 32-битным TSS,
- 5. Страничная трансляция и защита Страничная трансляция, не являясь обязательным механизмом при выполнении одной задачи V86, тем
- 6. При выполнении программ МП 8086 процессор не обращается к дескрипторам и, следовательно, не использует реализуемый с
- 7. Другой способ защиты системы от прикладных программ МП 8086 заключается в резервировании в начале линейного пространства
- 8. Способ обработки прерывания/исключения зависит от: VME (Virtual-8086 Mode Extensions, бит 0 регистра CR4, Pentium+) - расширения
- 9. 3. Битовая карта перенаправления программных прерываний (Software interrupt redirection bit map, Pentium+) - опциональная структура в
- 10. В таблице IDT соответствующий обработчик прерывания / исключения может быть представлен шлюзом ловушки или прерывания, ссылаясь
- 11. Обработчик прерывания или исключения может быть также вызван через шлюз задачи. Тогда обработчик выполняется в отдельной
- 12. При возникновении прерывания обработчик может проанализировать флаг VM в стеке и при необходимости передать управление монитору
- 13. Обработка программных прерываний (класс 3) зависит от возможности использования битовой карты перенаправления программных прерываний. Каждый бит
- 15. Скачать презентацию
Системное программное обеспечение не может непосредственно изменить состояние бита VM (например,
Системное программное обеспечение не может непосредственно изменить состояние бита VM (например,
Процессор начинает выполнять задачу в состоянии V86 в двух случаях:
При переключении на новую задачу, когда регистр EFLAGS, загружаемый из нового TSS, содержит бит VM=1. Следует отметить, что задача в состоянии V86 может определяться только 32-битным TSS, т.к. 16-битный TSS содержит только младшее слово регистра EFLAGS, не включающее бит VM.
При возврате из обработчика прерывания или исключения защищенного режима CPL=0 с помощью команды IRET без переключения задач (EFLAGS.NT=0), когда образ регистра EFLAGS в стеке содержит бит VM=1. (Если уровень привилегий обработчика отличен от нуля, процессор не изменит бит VM).
Процессор прекращает выполнять задачу в состоянии V86 только при возникновении прерывания
Процессор прекращает выполнять задачу в состоянии V86 только при возникновении прерывания
Если обработчик соответствующего прерывания / исключения представлен в IDT шлюзом задачи, при переключении на которую процессор покидает виртуальный режим (ее TSS содержит EFLAGS.VM=0).
Если обработчик прерывания / исключения находится в сегменте кода с PL=0.
Монитор V86
Для полноценного выполнения программы для МП 8086 задача в
Монитор V86
Для полноценного выполнения программы для МП 8086 задача в
Монитор V86 - программный модуль, выполняемый в сегменте кода с PL=0 в защищенном режиме. Монитор V86 обеспечивает инициализацию, обработку прерываний и исключений, реализацию процедур ввода-вывода, эмулирующих аппаратную платформу компьютеров на основе МП 8086. Как правило, основная часть монитора V86 - это обработчик нарушения общей защиты. Именно оно позволяет эмулировать программно-аппаратную среду МП 8086 в многозадачной системе на основе микропроцессора архитектуры IA-32. Как и любая другая программа для защищенного режима, монитор V86 использует дескрипторы сегментов в GDT или локальной дескрипторной таблице задачи. Монитору могут также понадобиться дескрипторы сегментов данных, с помощью которых монитор получает доступ к IDT или другим частям программы МП 8086, находящимся в первом мегабайте линейного адресного пространства.
Страничная трансляция и защита
Страничная трансляция, не являясь обязательным механизмом при
Страничная трансляция и защита
Страничная трансляция, не являясь обязательным механизмом при
перенаправлять или захватывать ссылки на устройства ввода-вывода, отображаемые в пространство памяти;
совместно использовать операционную систему МП 8086 или процедуры, записанные в ПЗУ, и общие для нескольких одновременно выполняемых задач в состоянии V86;
создавать множество задач V86, в котором каждая задача отображает нижний мегабайт линейных адресов на различные физические ячейки;
При выполнении программ МП 8086 процессор не обращается к дескрипторам и,
При выполнении программ МП 8086 процессор не обращается к дескрипторам и,
В виртуальном режиме в число команд, чувствительных к уровню привилегий ввода-вывода, входят следующие команды: CLI, STI, PUSHF, POPF, INT n и IRET. В число этих команд не входят инструкции обращения к портам ввода-вывода (IN, INS, OUT, OUTS), т.к. в виртуальном режиме процессор вне зависимости от IOPL обращается к двоичной карте разрешения ввода-вывода;
Для защиты системных программ в задаче V86 от программ МП 8086 можно использовать два подхода. Разработчик программного обеспечения может использовать бит U/S элемента таблицы страниц для защиты монитора виртуальной машины и других системных программ, располагаемых в пространстве каждой задачи V86. Т.к. страницы монитора виртуальной машины имеют привилегии супервизора, они недоступны для программы МП 8086.
Другой способ защиты системы от прикладных программ МП 8086 заключается в
Другой способ защиты системы от прикладных программ МП 8086 заключается в
Обработка прерываний и исключений
При возникновении прерывания или исключения процессор вызывает соответствующий обработчик. В виртуальном режиме способ вызова обработчика зависит от типа возникшего события и от состояния системных флагов.
Для виртуального режима прерывания и исключения можно разделить на три класса:
Немаскируемые аппаратные прерывания (вход NMI#) и исключения процессора. Сюда же относятся маскируемые аппаратные прерывания, если выключено расширение VME (Pentium+).
Маскируемые аппаратные прерывания, поступающие на вход процессора INTR# или по шине APIC (Pentium+), когда включено расширение VME.
Программные прерывания, генерируемые инструкцией INT n.
Способ обработки прерывания/исключения зависит от:
VME (Virtual-8086 Mode Extensions, бит 0
Способ обработки прерывания/исключения зависит от:
VME (Virtual-8086 Mode Extensions, бит 0
IOPL (I/O Privilege Level, биты 12-13 регистра флагов) - уровень привилегий ввода-вывода. Это поле влияет на работу с виртуальным флагом прерываний (VIF) и программными прерываниями (класс 3).
3. Битовая карта перенаправления программных прерываний (Software interrupt redirection bit map,
3. Битовая карта перенаправления программных прерываний (Software interrupt redirection bit map,
4. VIF и VIP (Virtual Interrupt Flag, Virtual Interrupt Pending flag - биты 19 и 20 регистра флагов, Pentium+) - виртуальный флаг прерывания и виртуальный флаг задержки прерывания. Когда включено расширение VME и IOPL<3, инструкции CLI, STI и POPF, не генерируя нарушение общей защиты, вместо бита IF меняют значение бита VIF.
В таблице IDT соответствующий обработчик прерывания / исключения может быть представлен
В таблице IDT соответствующий обработчик прерывания / исключения может быть представлен
Обработчик прерывания или исключения может быть также вызван через шлюз задачи.
Обработчик прерывания или исключения может быть также вызван через шлюз задачи.
При обработке прерываний класса 2 дополнительные возможности предоставляет механизм VME. Задача в состоянии V86 при помощи флага VIF, который она может менять при помощи обычных инструкций STI и CLI, сообщает монитору V86 о разрешении или запрещении прерывать программу для обработки маскируемых прерываний, не влияя на общесистемный флаг разрешения прерываний IF. Флаг VIP предоставляет монитору возможность фиксировать отложенные и не обработанные прерывания (возникшие, когда флаг VIF=0).
При возникновении прерывания обработчик может проанализировать флаг VM в стеке и
При возникновении прерывания обработчик может проанализировать флаг VM в стеке и
Если в дальнейшем программа 8086 разрешает "виртуальные" прерывания при помощи инструкции STI, а при этом флаг VIP=1, то процессор генерирует нарушение общей защиты, так что монитор V86 получает возможность обработать отложенное прерывание.
Обработка программных прерываний (класс 3) зависит от возможности использования битовой карты
Обработка программных прерываний (класс 3) зависит от возможности использования битовой карты