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

Автор работы: Пользователь скрыл имя, 27 Ноября 2012 в 23:02, лекция

Описание работы


Прикладные программы для 8086 могут исполняться на 32-разрядных процессорах, как в реальном режиме, так и в режиме виртуального 8086 (V86), который является особым состоянием задачи защищенного режима. Назначение этого режима — формирование виртуальной машины, эмулирующей процессор 8086. Виртуальная машина формируется программными средствами операционной системы — монитором V86, который поддерживается специальными аппаратными средствами процессора. Режим V86 позволяет пользоваться аппаратными средствами поддержки многозадачности. В этом режиме работает защита и механизм страничной переадресации, позволяющий адресоваться к любой области 4-гигабайтного пространства физической памяти, где формируется структура, аналогично адресному пространству памяти процессора 8086 (

Файлы: 1 файл

Документ Microsoft Office Word.docx

— 24.89 Кб (Скачать файл)

Адрес, аналогично реальному  режиму, является двухкомпонентным, состоящим  из 16-битного номера 16-байтного параграфа, задающего базовый адрес сегмента и 16-битного смещения внутри сегмента;

Исходя из формата адреса, возможна адресация только нижнего  мегабайта памяти (+65520 байт HMA); однако, благодаря страничному отображению, в эту область могут быть отображены произвольные страницы памяти, что  позволяет организовать мультизадачность для задач DOS;

Задача исполняется с  самыми низкими привилегиями в кольце 3.

Прерывания обрабатываются обычными обработчиками ОС защищенного  режима. Таблица векторов прерываний по адресу 0 не используется (если не активно  расширение VME). Модуль операционной системы, часто называемый V86-монитором, может  эмулировать прерывание реального  режима, программно обращаясь к этой таблице;

Меняется значение поля EFLAGS.IOPL. В режиме V86 оно используется для  перехвата некоторых инструкций (CLI, STI, PUSHF, POPF, INT, IRET), а для перехвата  ввода/вывода требуется использование  битовой карты разрешения портов в сегменте состояния задачи;

Расширения

Начиная с процессора Pentium в режим V86 были введены опциональные функции: таблица перенаправления прерываний и виртуализация флажка прерываний. Теперь процессор, без вмешательства ОС мог непосредственно использовать таблицу векторов прерываний по адресу 0, причем не для всех прерываний, а только для тех, что разрешила операционная система с помощью специальной битовой карты (аналогичной карте ввода/вывода) в сегменте состояния задачи. Виртуализация флага прерываний также уменьшает число исключительных ситуаций, требующих программной обработки операционной системой, что, в свою очередь, сказывается на общей производительности.

V86 и x86-64

Процессоры с архитектурой x86-64 поддерживают V86 только в наследственном, но не в длинном режиме. В длинном  режиме флажок EFLAGS.VM попросту игнорируется. Поэтому, для поддержки виртуальных DOS-задачи требуется переключение в наследственный режим, сопряженное с двойным сбросом MMU. А поскольку роль DOS и её приложений в наши дни практически сошла на нет, операционные системы x86-64 не включают такого рода поддержку V86. Тем не менее, некоторые современные средства аппаратной виртуализации позволяют виртуализовать как реальный режим, так и V86, получая в результате двойную виртуализацию.

Поддержка операционными  системами

MS-DOS — В DOS режим V86 использовался  для эмуляции дополнительной  памяти по стандарту LIM/EMS при  помощи специального драйвера EMM386. Поскольку в этом режиме, в отличие от реального, возможна трансляция страниц, дополнительная память эмулировалась с помощью отображения расширенной в окно адресов UMB/EMS. Также драйвер позволял в адресах UMB размещать данные и резидентные программы.

OS/2 — В составе OS/2 имелась  штатная виртуальная DOS-машина.

Windows — В составе Windows начиная с версии 3.0 появился 386 расширенный режим, который позволял позволял создавать V86-задачи для программ DOS («DOS в окне»).

Linux — ОС Linux/x86 поддерживается системный вызов vm86() которым активно пользуется программа DOSEMU — свободная реализация виртуальной DOS-машины (в последнее время вытесненяемая эмулятором DOSBox, поскольку эмуляция, несмотря на большие ресурсозатраты более точно имитирует работу компьютера, что было важно для программ того времени, довольно часто обращающихся к аппаратным средствам непосредственно).

FreeBSD — В ОС FreeBSD/i386 имеется поддержка V86 и встренная программа doscmd, обладающая гораздо меньшими возможностями, чем DOSEMU, поэтому практически не используемая.

 

Монитор V86

Для полноценного выполнения программы для МП 8086 задача в состоянии V86, описываемая 32-битным TSS, должна содержать, кроме программы МП 8086, сервисы  операционной системы МП 8086 и монитор V86.

Монитор V86 - программный  модуль, выполняемый в сегменте кода с PL=0 в защищенном режиме. Монитор V86 обеспечивает инициализацию, обработку  прерываний и исключений, реализацию процедур ввода-вывода, эмулирующих  аппаратную платформу компьютеров  на основе МП 8086. Как правило, основная часть монитора V86 - это обработчик нарушения общей защиты. Именно оно  позволяет эмулировать программно-аппаратную среду МП 8086 в многозадачной системе  на основе микропроцессора архитектуры IA-32. Как и любая другая программа  для защищенного режима, монитор V86 использует дескрипторы сегментов  в GDT или локальной дескрипторной  таблице задачи. Монитору могут также  понадобиться дескрипторы сегментов  данных, с помощью которых монитор  получает доступ к IDT или другим частям программы МП 8086, находящимся в  первом мегабайте линейного адресного  пространства.

Средства операционной системы  МП 8086 могут оставаться частью программы  МП 8086, либо эмулироваться монитором V86. В первом случае можно использовать готовую ОС для МП 8086, при чем не требуется заботиться о механизмах, позволяющих программе МП 8086 изменять сервисы ОС 8086. Во втором случае требуется интеграция сервисов ОС 8086 в монитор V86, но зато облегчается управление общесистемными ресурсами, при чем можно сэкономить память за счет исключения дублирования кода ОС в различных задачах V86 или использования сервисов основной ОС защищенного режима. Следует заметить, что независимо от способа реализации режима V86, различные задачи V86 могут использовать разные операционные системы МП 8086, что открывает перед системными программистами дополнительные возможности.

 

 

 

 

 


Информация о работе Виртуальный режим