Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Виртуальный режим (V86)




При виртуальном режиме происходит эмуляция (моделирование) функционирования процессора 8086 в операционной среде основного процессора i386+, работающего в многозадачном режиме, как одной из его возможных задач. При этом обеспечивается ряд средств защиты и возможность страничной организации памяти. Поэтому, часто говорят, что в режиме V86 микропроцессор работает как виртуальный процессор 8086, состоящий из аппаратных средств основного процессора i386+, системного программного обеспечения, представляющего собой специальную программу – монитор V86 в среде основной ОС и прикладного программного обеспечения, разработанного для 8086. Сам же монитор V- режима (V86) представляет собой программу Р - режима, которая выполняется на уровне привилегий 0.

Таким образом, задача в виртуальном режиме имеет сложную структуру: обычная пользовательская программа 8086, вложена в программу-монитор V86, которая, в свою очередь, является задачей защищенного режима базового процессора i386+, выполняемой на уровне привилегий 0. Но программа-монитор V86 может, например, эмулировать средства MS-DOS. В этом случае структура задачи получается еще более сложной: обычная задача 8086 вкладывается в MS-DOS, а сама MS-DOS – в монитор V86.

Все задачи виртуального режима V86 выполняются на уровне привилегий 3 (CPL = 3). Этим виртуальный режим отличается от реального режима работы, при котором всем программам представляется наиболее привилегированный уровень CPL = 0. Поскольку в виртуальном режиме, как и в реальном дескрипторы не используются, то в нем определены только некоторые способы защиты, а именно:

· При использовании страничной организации памяти, в случае нарушения правил доступа к странице, реализуется прерывание типа 14 (отказ страницы).

· При появлении привилегированных команд, которые выполняются в защищенном режиме только при CPL = 0 (команды LIDT, LGDT, LMSW, CLTS, HLT, а также команда MOV при обращении к регистрам управления, тестирования и отладки), возникает прерывание типа 13 (нарушение защиты).

· При появлении других привилегированных команд (LLDT, SIDT, LTR, STR, LAR, LSL, ARPL, VERR, VERW) возникает прерывание типа 6 (неразрешенный код команды).

В задачу, работающую в виртуальном режиме можно войти двумя основными способами:

1. Выполнив команду CALL или JMP к TSS, у которого установлен в единичное состояние бит VM (Virtual Machine) в копии регистра EFLAGS, т.е. осуществить операцию переключения задач.

2. При возврате из прерывания, с использованием команды IRET в ходе выполнения программы с CPL=0, если в загружаемом при этом из стека содержимом регистра EFLAGS, бит VM установлен в 1.

Выход процессора из режима V86 может произойти только при обработке прерываний или исключений, когда:

1. В результате прерывания происходит переход на процедуру с высшим уровнем привилегий (с CPL=0). При этом текущее состояние регистра EFLAGS заносится в стек, а бит VM сбрасывается в 0. То есть, вызванная процедура будет выполняться в защищенном режиме.

2. Прерывание вызывает переключение задачи командой JMP на задачу с TSS, в котором значение бита VM, в поле EFLAGS, равно нулю.

Следует заметить, что в процессорах определен также расширенный виртуальный режим EV86 (Extended V86), который включается дополнительной установкой в единичное состояние бита VME в управляющем регистре CR4. В этом режиме процессор имеет возможность управлять флагом IF (с помощью инструкций CLI и STI) не только при IOPL=3, но и при IOPL<3. В этом режиме IOPL – чувствительные инструкции не вызывают особого случая – отказа, а воздействуют на виртуальную версию флага VIF в регистре EFLAGS. Этот флаг не влияет на восприятие процессором внешних (маскируемых) прерываний, а лишь указывает на состояние задачи EV86 – разрешила или запретила она обработку прерываний. При этом, во-первых, повышается производительность – инструкции CLI и STI теперь не приводят к отказам, а во-вторых, упрощается монитор, обеспечивающий программную виртуализацию флага прерываний (в V86 монитор должен был отслеживать все инструкции, влияющие на IF – CLI, STI, PUSHF, POPF, INT и IRET). Аппаратная виртуализация флага приводит к значительному повышению производительности. В режиме EV86 сегмент состояния задачи TSS приобретает новую 32–байтную структуру – карту перенаправления прерываний (смотри раздел о многозадачном режиме работы). Каждый бит карты перенаправления соответствует одному из 256 (32×8) программных прерываний, вызываемых инструкцией INTn. Если этот бит установлен (равен 1), то соответствующее прерывание вызовет особый случай – отказ с выходом из EV86 в монитор. Если же он сброшен, то прерывание обрабатывается процедурой реального режима без выхода из EV86.

На программные прерывания, вызываемые иным образом, а также особые случаи и внешние аппаратные прерывания карта перенаправления действия не оказывает.

В заключение приведем таблицу возможностей рассмотренных режимов работы процессоров i386+, при выполнении задач (табл.IX.1).

Табл.IX.1.

Возможности различных режимов процессоров i386+.

  Возможности Реальный режим (PE = 0) Защищенный режим (PE=1)
V – режим (VM=1) P- режим (VM=0)
       
32-битные регистры общего назначения   Доступны   Недоступны   Доступны
Многозадачность Нет Нет Возможна
Защита: - сегментов - страниц - ввода/вывода Нет Нет Есть
Нет Есть Есть
Нет Возможна Есть
Уровни привилегий     0, 1, 2, 3
Доступность команд МП i386+   Не все   Не все   Все
Память: - общий объем - размер сегмента - страничный механизм - виртуальная память      
До 1 Мбайт До 1 Мбайт До 4 (64) Гбайт
До 64 Кбайт До 64 Кбайт До 4 Гбайт
Нет Возможен Возможен
Нет Нет Возможна

 




Поделиться с друзьями:


Дата добавления: 2015-06-28; Просмотров: 1625; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.