Защита и архитектура набора инструкций
10.05.2019
В 2006 году новые предложения от AMD и Intel были направлены в первую очередь на сокращение издержек виртуализации процессора. Будет интересно посмотреть, сколько поколений архитектуры и модификаций VMM потребуется для решения по всем трем пунктам, и сколько времени пройдет, пока виртуальные машины XXI века станут такими же эффективными, как универсальные машины IBM и диспетчеры виртуальных машин 1970-х годов.
Кроме виртуализации набора инструкций есть еще одна проблема — виртуализация виртуальной памяти, поскольку каждая операционная система в каждой виртуальной машине управляет своим собственным набором таблиц страниц. Чтобы справиться с этой работой, VMM разделяет понятия реальной и физической памяти (которые часто считаются синонимами) и делает реальную память отдельным, промежуточным уровнем между виртуальной и физической памятью. (Для названия этих же трех уровней используются также термины виртуальная память, физическая память и машинная память.) Гостевая операционная система отображает виртуальную память на реальную через свои таблицы страниц, а таблицы страниц VMM отображают реальную память гостевой системы на физическую память. Архитектура виртуальной памяти определена либо через таблицы страниц, как в IBM VM/370 и в х86, либо через структуру TLB, как в MIPS. Любая система подлежит восстановлению. Это же касается ремонта, например, в ванной комнате. Можно выполнить ванна восстановление и сэкономить деньги.
Вместо того, чтобы платить за дополнительный уровень «косвенности» при каждом обращении к памяти, VMM поддерживает теневую таблицу страниц, которая осуществляет непосредственное отображение гостевого виртуального адресного пространства на физическое адресное пространство оборудования. Путем обнаружения всех изменений в гостевой таблице страниц VMM может гарантировать, что используемые оборудованием при преобразовании адресов записи в теневой таблице страниц соответствуют записям окружения гостевой операционной системы, за исключением соответствующих физических страниц, подставляемых вместо реальных страниц в гостевых таблицах. Следовательно, VMM должен перехватывать любые попытки гостевой операционной системы изменить ее таблицы страниц или обратиться к указателю таблицы страниц. Обычно это делается путем защиты от записи гостевых таблиц страниц и перехвата любого обращения к указателю таблицы страниц со стороны гостевой операционной системы. Как отмечалось ранее, последнее действие происходит вполне естественно, если обращение к указателю таблицы страниц является привилегированной операцией.
Последней частью архитектуры, подвергаемой виртуализации, является ввод-вывод. Это самая трудная часть системной виртуализации, что обусловлено постоянно возрастающим количеством устройств ввода-вывода, подключаемых к компьютеру, и растущим разнообразием этих устройств. Еще одной сложностью является совместное использование реальных устройств несколькими виртуальными машинами, и эта сложность усугубляется еще и необходимостью поддержки множества драйверов устройств, которые требуются особенно в том случае, если на одной и той же системе виртуальных машин поддерживаются разные гостевые операционные системы. Иллюзия виртуальной машины может поддерживаться путем предоставления каждой виртуальной машине универсальных версий драйверов устройств ввода-вывода каждого типа и передачи полномочий управления реальным вводом-выводом диспетчеру VMM.
Комментарии посетителей:
Ваш комментарий:
|