Режим виртуальных машин для исполнения приложений реального режима

Разработчики рассматриваемого семейства микропроцессоров в своем стремлении обеспечить максимально возможную совместимость архитектуры пошли не только на то, чтобы за счет введения реального режима работы обеспечить возможность программам, созданным для первых 16-разрядных персональных компьютеров, без проблем выполняться на компьютерах с более поздними моделями микропроцес­соров. Они обеспечили возможность выполнения 16-разрядных приложений ре­ального режима при условии, что сам процессор функционирует в защищенном режиме работы, и операционная система, используя соответствующие аппаратные средства микропроцессора, организует мультипрограммный (мультизадачный) режим. Другими словами, микропроцессоры i80x86 поддерживают возможность создания операционных сред реального режима при работе микропроцессора в за­щищенном режиме. Если условно назвать 16-разрядные приложения DOS-прило­жениями (поскольку в абсолютном большинстве случаев это именно так), то мож­но сказать, что введена поддержка виртуальных DOS-машин, работающих вместе с обычными 32-разрядными приложениями защищенного режима. Это нашло от­ражение в названии такого режима работы микропроцессоров i80x86 (его называ­ют режимом виртуального процессора i8086, иногда для краткости — режимом V86, или просто виртуальным режимом), когда в защищенном режиме работы может исполняться код DOS-приложения. Мультизадачность при выполнении несколь­ких программ реального режима поддерживается аппаратными средствами защи­щенного режима.


114_______________ Глава 4. Особенности архитектуры микропроцессоров j80x86

Переход в виртуальный режим осуществляется посредством изменения бита VM (Virtual Mode) в регистре EFLAGS. Когда процессор находится в виртуальном режиме, для адресации памяти используется схема реального режима работы (сег­мент плюс смещение) с размером сегментов до 64 Кбайт, которые могут распола­гаться в адресном пространстве размером в 1 Мбайт, однако полученные адреса считаются не физическими, а линейными. В результате страничной трансляции осуществляется отображение виртуального адресного пространства 16-разрядно­го приложения на физическое адресное пространство. Это позволяет организовать параллельное выполнение нескольких задач, разработанных для реального режи--ма, да еще совместно с обычными 32-разрядными приложениями, требующими защищенного режима работы.

Естественно, что для обработки прерываний, возникающих при выполнении 16-раз­рядных приложений в виртуальном режиме, процессор возвращается из этого ре­жима в обычный защищенный режим. В противном случае невозможно было бы организовать полноценную виртуальную машину. Очевидно, что обработчики прерываний для виртуальной машины должны эмулировать работу подсистемы прерываний процессора i8086. Другими словами, прерывания отображаются в операционную систему, работающую в защищенном режиме, и уже основная опе­рационная система моделирует работу операционной среды выполняемого прило­жения.

Вопрос, связанный с операциями ввода-вывода, которые недоступны для обыч­ных приложений (см. следующий раздел), решается аналогично. При попытке выполнить недопустимые команды (ввода-вывода) возникают прерывания, и не­обходимые операции выполняются операционной системой, хотя задача об этом и «не подозревает». При выполнении команд IN, OUT, INS, OUTS, CLI, STI процессор, находящийся в виртуальном режиме и исполняющий код на уровне привилегий третьего (самого нижнего) кольца защиты, за счет возникающих вследствие этого прерываний переводится на выполнение высоко привилегированного кода опера­ционной системы.

Таким образом, операционная система может полностью виртуализировать ап­паратные1 и программные ресурсы компьютера, создавая полноценную опера­ционную среду, отличную от себя самой, ибо существуют так называемые на-тивные приложения, создаваемые по собственным спецификациям данной операционной системы. Очень важным моментом для организации полноцен­ной виртуальной машины является виртуализация не только программных, но и аппаратных ресурсов. Так, например, в Windows NT эта задача выполнена явно неудачно, тогда как в OS/2 имеется полноценная виртуальная машина как для DOS-приложений, так и для приложений, работающих в среде специфика­ций Winl6. Правда, в последнее время это перестало быть актуальным, посколь­ку появилось большое количество приложений, работающих по спецификаци­ям Win32 API.

1 Речь идет о памяти, портах ввода-вывода, системе обработки прерываний и других устройствах.


Защита адресного пространства задач____________________________________ 115








Дата добавления: 2016-09-20; просмотров: 649;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.