Как две или более гостевых ОС, размещенные в виртуальной среде, обрабатывают редактирование одного ресурса?
Я знаю, это звучит очень общий вопрос.
Рассмотрим две ОС, использующие виртуализацию, скажем, виртуализацию на уровне операционной системы. Как обрабатывается параллелизм, если обе размещенные ОС используют один и тот же ресурс и как это работает?
3 ответа
Виртуализированные ОС никогда не видят физических ресурсов, они "думают", что работают на другом оборудовании, которое эмулируется уровнем виртуализации; поэтому, хотя виртуальная машина думает, что у нее есть контроллер SCSI и локальный диск SCSI, возможно, это фактически соответствует файлу в файловой системе на LUN в SAN.
Параллельный доступ обрабатывается уровнем виртуализации в зависимости от типа ресурса; если на хосте есть четыре физических ЦП и две виртуальные машины хотят использовать по одному, они могут безопасно делать это одновременно, но их рабочая нагрузка будет фактически разделена между двумя физическими ЦП. Однако, если существует только один физический ЦП, то планировщик хоста будет обрабатывать параллелизм и выделять каждой ВМ некоторое время ЦП. Тот же принцип применим к каждому ресурсу (диску, сети и т. Д.).
Обычно гостевые ОС не имеют доступа к физическому оборудованию. Они могут увидеть виртуальное представление. Например, у них есть виртуальные диски, которые обычно отображаются в файлы (но не обязательно). Порты Com, Printer, Network и т. Д. Работают одинаково.
ВМ, с точки зрения операционной системы хоста, является процессом, и этому процессу назначаются ресурсы, как и любому другому процессу. Это относится к обработке ввода-вывода, очереди процессора и т. Д.
это очень кратко и кратко, конечно, не вдаваясь в SMP, VT и VT-D