Цена виртуализации

Можно было бы наивно полагать, что центральные процессоры с VT существенно превзойдут программные технологии, прибегающие к трансляции, но замеры дают неоднозначную картину (Adams and Agesen, 2006). Оказывается, подход, предусматривающий передачу управления при системном прерывании и эмуляцию, используемый VT-оборудованием, приводит к выдаче большого количества системных прерываний, которые на современном оборудовании обходятся очень дорого, поскольку разрушают кэши центрального процессора, TLB-буферы и таблицы предсказания переходов, находящиеся внутри центрального процессора. В отличие от этого, когда служебные инструкции внутри выполняемого процесса заменяются вызовами процедур гипервизора, таких издержек от контекстного переключения не происходит. Как показали Адамс и Агесен, в зависимости от загруженности программный вариант порой превосходит аппаратный. Поэтому некоторые гипервизоры первого (и второго) типа во избежание падения производительности осуществляют двоичную трансляцию, даже если программа будет правильно выполняться и без нее.

При осуществлении двоичной трансляции сам оттранслированный код по сравнению с исходным кодом может быть либо более медленным, либо более быстрым в выполнении. Предположим, к примеру, что гостевая операционная система выключила аппаратные прерывания, используя инструкцию CLI (clear interrupts — очистить прерывания). В зависимости от архитектуры эта инструкция может выполняться очень медленно, занимая десятки тактов на конкретных центральных процессорах с глубокими конвейерами и выполнением инструкций вразброс. Теперь уже должно стать понятно, что желание гостевой операционной системы заблокировать прерывания не означает, что гипервизор на самом деле должен их заблокировать и повлиять на работу всей машины.

Соответственно гипервизор должен выключить их для гостевой операционной системы без реального выключения. Для этого он может отслеживать специальный флаг прерываний (Interrupt Flag (IF)) в структуре данных в виртуальном центральном процессоре, который им поддерживается для каждой гостевой операционной системы (гарантируя тем самым, что виртуальная машина не получает никаких прерываний до тех пор, пока прерывания опять не будут включены). Каждое появление CLI в гостевой операционной системе будет заменено чем-нибудь вроде VirtualCPU.IF = 0, то есть весьма малозатратной инструкцией перемещения, которая займет не более трех тактов. Следовательно, оттранслированный код будет выполнен быстрее. Тем не менее при использовании современного VT-оборудования аппаратное решение превосходит по эффективности программное.

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

7.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Цена виртуализации:

  1. Статья 843. Цена работы
  2. 4. Цена.
  3. Статья 632. Цена
  4. Цена номера.
  5. Статья 691. Цена товара
  6. 3. Цена.
  7. Цена реформ
  8. ЦЕНА ТРАНСФОРМАЦИИ
  9. Статья 706. Цена и оплата товара
  10. 6. Цена по договору коммерческой концессии, права и обязанности сторон.
  11. Твоя цена перед лицом смерти, ИЛИ Кто есть Человек
  12. § 46 Общие правила найма по русскому закону. – Крайний срок найма. – Ограничения личные. – Форма договора. – Цена. – Пространство пользования. – Право владения в найме и его принадлежности. – Передача найма. – Исполнение договора и прекращение. – Ограничение найма в заложенных имениях. – Наем из выстройки. – Общее замечание о законе поземельного найма.
  13. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  14. Статья 967. Сохранение вещи в ломбарде
  15. 2. Заключение договора розничной купли-продажи.
  16. 2.1. Договор мены
  17. 5. Изменение и расторжение договора поставки
  18. Статья 695. Особенности оплаты товара с рассрочкой платежа
  19. Статья 699. Публичное предложение заключить договор купли-продажи
  20. ИДЕЯ 33 ТЕРПЕНИЕ