Как работает ОЗУ в виртуальной машине?

Я установил виртуальную машину Linux с VBox, а хост-операционная система Windows. Хотелось бы понять, как работает оперативная память на виртуальной машине.

  • выделяет ли хост гостевую используемую оперативную память в качестве единой службы?
  • или ОЗУ напрямую, выделенных гость?

короче говоря, хост выглядит гостем как одно приложение, или гостевая система напрямую назначает свои потребности оборудованию? Я не изучал компьютер наука или что-то такое, поэтому я воспринимаю проблему так:

  • Если я делаю один расчет в гостевой системе, и хост-система воспринимает гостя как одну услугу, то расчет будет одним из многих сервисов, которые гость производит в то время, и мой расчет будет иметь задержку.
  • Если гость напрямую подключается к оперативной памяти, то другие услуги уже выделены в оперативной памяти, и они колеблются, и новый будет назначен более быстрый.
5
источник

1 ответов

во-первых: распределение оперативной памяти всегда находится под окончательным контролем операционной системы хоста.

помимо этого, это зависит.

с помощью простого гипервизора вы просто скажите гипервизор, сколько оперативной памяти каждой виртуальной машины получает, что сумма вычитается из доступной оперативной памяти на хост-системе, когда ВМ и используется гипервизором пока ВМ работает. Операционная система, работающая на виртуальной машине, работает так же, как и всегда, выделяя оперативную память процессам и ОС. Старое Microsoft "Virtual PC", который широко использовался для запуска" XP Mode " в Windows 7, работает таким образом. В VirtualBox также. В обоих случаях, если настроить виртуальную машину на 1 ГБ ОЗУ и запустить ее, на узле внезапно станет на 1 ГБ меньше ОЗУ. Обычно он не очень эффективен в использовании оперативной памяти, но прост в реализации.

с более сложным гипервизором сумма, выделяемая виртуальной машине, является просто верхним пределом. Гостевая ОС видит, что много оперативной памяти, как "всего", но за кулисами некоторые или даже большая часть того, что гость думает, ОЗУ может быть виртуальным, насколько хозяин обеспокоен. Это особенно верно в отношении того, что Windows называет" свободной "или" обнуленной " оперативной памятью в гостевой системе - поскольку у нее нет интересующего контента, нет необходимости хранить его в любом месте. Но даже ОЗУ, которое гость видит как "используемое", может быть виртуальным в Хосте с содержимым в файле подкачки или сопоставленном файле.

гостевая ОС продолжает обрабатывать оперативную память, как всегда, но если гостевая ОС ссылается на некоторые из них пока нет оперативной памяти, гипервизор может выделять гостю больше оперативной памяти. (Другими словами, ссылка на память, которая, кажется, работает без ошибки страницы в гостевой системе, могла бы вызвать ошибку страницы в Хосте.) В пределах общего доступного ОЗУ и настроенных ограничений гипервизор регулирует объем ОЗУ, который находится "в" гостевой ОС, чтобы попытаться сохранить свою частоту сбоев страницы в Хосте низкой.

обычно это называется "тонкая подготовка". Это более сложно реализовать в гипервизор, но приводит к более эффективному использованию оперативной памяти хоста.

2
отвечен Jamie Hanrahan 2018-03-24 21:59:54
источник