1

Я изучаю виртуализацию. И самое первое, на чем я застрял - это мониторинг виртуальной машины. Я где-то читал: почему бы не виртуализировать - издержки виртуализации. И это в большинстве случаев меньше 5%. Но в основном я хочу понять, что это за накладные расходы? Любое правильное определение? Я погуглил, но не нашел удовлетворительного ответа. Кто-нибудь знает об этом?

1 ответ1

4

Типичная ОС делится на ядро и пользовательское пространство. Ядро имеет прямой доступ к оборудованию, а пользовательское пространство (там, где работают программы) - нет, и должно проходить через ядро. Каждая программа работает "в" пользовательском пространстве, предоставляемом ядром. (Современные процессоры имеют MMU, который физически препятствует тому, чтобы пользовательские пространства делали то, что не позволяет ядро.)

Было бы быстрее, если бы пользовательское пространство могло обращаться к оборудованию напрямую, а не проходить через ядро, но значительно менее безопасно. Таким образом, ОС вводит некоторые накладные расходы.

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

Более новые процессоры поддерживают виртуальные машины в аппаратном обеспечении, а также поддерживают "переназначение" оборудования в виртуальных машинах (IOMMU), поэтому накладные расходы обычно очень малы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .