Требования к виртуализации Попека и Голдберга

редактировать

Требования к виртуализации Попека и Голдберга представляют собой набор условий, достаточных для поддержки компьютерной архитектурой система виртуализация эффективно. Они были представлены Джеральдом Дж. Попеком и Робертом П. Голдбергом в их статье 1974 года «Формальные требования для виртуализируемых архитектур третьего поколения». Несмотря на то, что требования основаны на упрощающих предположениях, они по-прежнему представляют собой удобный способ определения того, поддерживает ли компьютерная архитектура эффективную виртуализацию, и предоставляют руководящие принципы для проектирования виртуализированных компьютерных архитектур.

Содержание

  • 1 Определение VMM
  • 2 Теоремы виртуализации
  • 3 Обработка критических инструкций
  • 4 Наборы инструкций общих архитектур
    • 4.1 PDP-10
    • 4.2 System / 370
    • 4.3 Motorola MC68000
    • 4.4 IA-32 (x86)
    • 4.5 IA-64
    • 4.6 SPARC
    • 4.7 PowerPC
  • 5 Производительность на практике
  • 6 Ссылки

Определение VMM

Система виртуальные машины способны виртуализировать полный набор аппаратных ресурсов, включая процессор (или процессоры), память и ресурсы хранения, а также периферийные устройства. монитор виртуальной машины (VMM, также называемый гипервизором ) - это часть программного обеспечения, которая обеспечивает абстракцию виртуальной машины. При анализе среды, созданной с помощью VMM, интерес представляют три свойства:

Эквивалентность / точность
Программа, работающая под VMM, должна демонстрировать поведение, по существу идентичное тому, которое демонстрируется при запуске непосредственно на эквивалентной машине.
Управление ресурсами / безопасность
VMM должен полностью контролировать виртуализированные ресурсы.
Эффективность / производительность
Статистически доминирующая часть машинных инструкций должен выполняться без вмешательства VMM.

По терминологии Попека и Голдберга, VMM должен представлять все три свойства. В терминологии, используемой в справочнике Smith and Nair (2005), обычно предполагается, что VMM удовлетворяют свойствам эквивалентности и управления ресурсами, а те, которые дополнительно соответствуют свойству производительности, называются эффективными VMM.

Popek and Goldberg описывают характеристики, которыми архитектура набора команд (ISA) физической машины должна обладать, чтобы запускать VMM, которые обладают вышеуказанными свойствами. Их анализ выводит такие характеристики с использованием модели «архитектур третьего поколения» (например, IBM 360, Honeywell 6000, DEC PDP-10), которая, тем не менее, является достаточно общей, чтобы ее можно было распространить на современные машины. Эта модель включает в себя процессор, который работает в системном или пользовательском режиме и имеет доступ к линейной памяти с равномерной адресацией. Предполагается, что подмножество набора инструкций доступно только в системном режиме и что память адресуется относительно регистра перемещения. Ввод / вывод и прерывания не моделируются.

Теоремы виртуализации

Чтобы вывести свои теоремы виртуализации, которые дают достаточные (но не необходимые) условия для виртуализации, Попек и Голдберг вводят классификацию некоторых инструкций ISA на 3 разные группы:

Привилегированные инструкции
Те, которые перехватывают, если процессор находится в пользовательском режиме, и не перехватывают, если он находится в системном режиме (режим супервизора ).
Инструкции, чувствительные к управлению
Те, которые пытаются изменить конфигурацию ресурсов в системе.
Инструкции, чувствительные к поведению
Те, поведение или результат которых зависит от конфигурации ресурсов ( содержимое регистра перемещения или режим процессора).

Главный результат анализа Попека и Голдберга можно выразить следующим образом.

Теорема 1 . Для любого обычного компьютера третьего поколения, эффективный VMM может быть построен, если набор чувствительных инструкций для этого компьютера является подмножеством набора простых инструкций. гнусные инструкции.

Интуитивно теорема утверждает, что для построения VMM достаточно, чтобы все инструкции, которые могут повлиять на правильное функционирование VMM (конфиденциальные инструкции), всегда перехватывали и передавали управление VMM. Это гарантирует свойство управления ресурсами. Вместо этого непривилегированные инструкции должны выполняться изначально (т. Е. Эффективно). Также следует сохранение свойства эквивалентности.

Эта теорема также предоставляет простой метод для реализации VMM, называемый виртуализацией с ловушкой и эмуляцией, которая в последнее время называется классической виртуализацией: поскольку все чувствительные инструкции ведут себя хорошо, все, что нужно сделать VMM, - это ловить и эмулировать каждую один из них.

Связанная проблема заключается в получении достаточных условий для рекурсивной виртуализации, то есть условий, при которых может быть построена VMM, которая может работать на своей копии. Попек и Гольдберг представляют следующие (достаточные) условия.

Теорема 2 . Обычный компьютер третьего поколения является рекурсивно виртуализуемым, если:

  1. он виртуализируется и
  2. для него может быть сконструирован VMM без каких-либо временных зависимостей.

Некоторые архитектуры, такие как без аппаратной поддержки x86, не соответствуют этим условиям, поэтому их нельзя виртуализировать классическим способом. Но архитектуры все еще можно полностью виртуализировать (в случае x86, имея в виду на уровне ЦП и MMU), используя различные методы, такие как двоичная трансляция, которая заменяет чувствительные инструкции, которые не генерируют ловушки, которые иногда называют критическими инструкциями. Эта дополнительная обработка, однако, делает VMM менее эффективным в теории, но аппаратные ловушки также имеют значительную потерю производительности. Хорошо настроенная система кэширующей двоичной трансляции может обеспечить сопоставимую производительность, и это достигается в случае двоичной трансляции x86 по сравнению с аппаратной поддержкой x86 первого поколения, которая просто делала конфиденциальные инструкции доступными. Фактически это дает теорему с различными условиями достаточности.

Теорема 3 . Гибридная VMM может быть создана для любой машины третьего поколения, в которой набор чувствительных к пользователю инструкций является подмножеством набора привилегированных инструкций:

Обработка критических инструкций

Выраженные условия виртуализации ISA в теореме 1 можно ослабить за счет свойства эффективности. VMM для невиртуализируемых ISA (в смысле Попека и Голдберга) создавались регулярно.

Виртуализация таких архитектур требует правильной обработки критических инструкций, то есть чувствительных, но непривилегированных инструкций. В одном подходе, известном как исправление, используются методы, обычно используемые в динамической перекомпиляции : критические инструкции обнаруживаются во время выполнения и заменяются ловушкой в ​​VMM. Для повышения эффективности процесса исправления были предложены различные механизмы, такие как кэширование кода эмуляции или аппаратная поддержка. Другой подход - это метод паравиртуализации, который требует, чтобы гостевые операционные системы были изменены (портированы) перед запуском в виртуальной среде.

Наборы инструкций для общих архитектур

В этом разделе представлены некоторые соответствующие архитектуры и их отношение к требованиям виртуализации.

PDP-10

Архитектура PDP-10 имеет несколько чувствительных инструкций (изменение или запрос режима процессора), но не привилегированных. Эти инструкции сохраняют или восстанавливают коды условий, содержащие биты USER или IOT:

  • JSR: переход к подпрограмме
  • JSP: переход и сохранение счетчика программ
  • PUSHJ: нажатие и переход
  • JRST: переход и восстановление

System / 370

Все важные инструкции в System / 370 являются привилегированными: это удовлетворяет требованиям виртуализации.

Motorola MC68000

Motorola MC68000 имеет одну непривилегированную чувствительную команду:

  • MOVE from SR

Эта инструкция является чувствительной, поскольку она разрешает доступ ко всему регистру состояния, который включает не только коды условий , а также бит пользователя / супервизора, уровень прерывания и управление трассировкой. В большинстве более поздних членов семейства, начиная с MC68010, инструкция MOVE from SR была сделана привилегированной, и была предоставлена ​​новая инструкция MOVE from CCR, чтобы разрешить доступ только к регистру кода состояния.

IA-32 (x86)

Набор инструкций IA-32 процессора Pentium содержит 18 чувствительных непривилегированных инструкций. Их можно разделить на две группы:

  • Инструкции чувствительных регистров: чтение или изменение чувствительных регистров или участков памяти, таких как регистр часов или регистры прерываний:
    • SGDT, SIDT, SLDT
    • SMSW
    • PUSHF, POPF
  • Инструкции системы защиты: ссылка на систему защиты хранилища, память или систему перемещения адресов:
    • LAR, LSL, VERR, VERW
    • POP
    • PUSH
    • CALL FAR, JMP FAR, INT n, RETF
    • STR
    • MOV (сегментные регистры)

Введение AMD -V и Наборы команд Intel VT-x в 2005 году позволяют процессорам x86 соответствовать требованиям виртуализации Popek и Goldberg.

IA-64

Усилия, необходимые для поддержки виртуализации в архитектуре IA-64, описаны в статье 2000 года Магенхаймера и Кристиана.

SPARC

«Гиперпривилегированный» режим для архитектуры UltraSPARC был указан в UltraSPARC Architecture 2005. ' Он определяет платформу sun4v, которая является надстройкой платформы sun4u, но по-прежнему соответствует спецификации SPARC v9 Level-1.

PowerPC

Все важные инструкции в наборе инструкций PowerPC являются привилегированными.

Производительность на практике

Требование эффективности в Popek а определение VMM, данное Голдбергом, касается только выполнения непривилегированных инструкций, которые должны выполняться изначально. Это то, что отличает VMM от более общего класса программного обеспечения аппаратной эмуляции. К сожалению, даже в архитектуре, отвечающей требованиям Попека и Голдберга, производительность виртуальной машины может значительно отличаться от реального оборудования. Ранние эксперименты, проведенные на System / 370 (которая соответствует формальным требованиям теоремы 1), показали, что производительность виртуальной машины может составлять всего 21% от собственной машины в некоторых тестах. Стоимость перехвата и эмуляции привилегированных инструкций в VMM может быть значительной. Это привело к тому, что инженеры IBM представили ряд аппаратных ассистентов, которые примерно вдвое увеличили производительность виртуальных машин System / 370. Голевые передачи добавлялись в несколько этапов. В конце концов, на последних моделях System / 370 было более 100 ассистов.

Одним из основных движущих факторов для разработки аппаратных ассистов для System / 370 была сама виртуальная память. Когда в качестве гостя использовалась операционная система, которая сама реализовывала виртуальную память, даже непривилегированные инструкции могли испытывать более длительное время выполнения - штраф, налагаемый требованием доступа к таблицам трансляции, не используемым в собственном исполнении (см. таблицы теневых страниц ).

Ссылки

Примечания
Последняя правка сделана 2021-06-02 11:16:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте