Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyGOS_1_60.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.19 Mб
Скачать
  1. Віртуальні машини. Призначення і приклад реалізації.

Концепция виртуальных машин состоит в разделении ресурсов одной вычислительной системы на несколько подмножеств ресурсов, каждое из которых выглядит как отдельная вычислительная система - виртуальная машина.

Реализация виртуальных машин состоит в использовании системных интерфейсов, наиболее важные из них показаны на рис. 8.2.

Рис.8.2 - Интерфейсы вычислительной системы

Интерфейс Архитектуры набора команд (Instruction Set Architecture - ISA) определяет взаимодействие между программным и аппаратным обеспечением вычислительной системы. Этот интерфейс распадается на две составляющие: операционной системе доступен полный набор команд (интерфейсы 1 и 2 на рис.8.1), тогда как для программного обеспечения более высокого уровня доступно только некоторое подмножество команд (интерфейс 2 на рис.8.1), так называемые, непривилегированные команды. Для обеспечения разделения ISA вычислительная система должна иметь два режима выполнения команд - привилегированный и непривилегированный (другие названия: режим ядра и режим процесса, режим супервизора и режим задачи, соответственно), в первом из которых доступен полный набор команд, а во втором - только непривилегированные команды. Только операционная система (или даже только часть ее) выполняется в привилегированном режиме.

Разделение ISA на привилегированную и непривилегированную части обеспечивает защиту ресурсов от непосредственного доступа к ним прикладных программ, который является исключительной прерогативой операционной системы. К привилегированным относятся команды, непосредственно работающие с системными ресурсами: команды ввода-вывода, управления системой прерываний, изменения состояния системы, в некоторых системах привилегированный/непривилегированный режим определяет также возможности доступа к памяти и режим динамической трансляции адресов.

Все программное обеспечение, находящееся выше операционной системы, для работы с ресурсами обращается к операционной системе. Эти обращения называются системными вызовами. Системные вызовы вместе с непривилегированной частью ISA составляют Двоичный интерфейс приложения (Application Binary Interface - ABI). Двоичные коды программ переносимы между системами, имеющими одинаковый ABI.

Прикладные программы обращаются к операционной системе не непосредственно через системные вызовы, а через процедуры системных библиотек, обычно доступные из языков высокого уровня. Интерфейсы системных библиотек вместе с непривилегированной частью ISA составляют Программный интерфейс приложения (Application Program Interface - API). Исходные коды программ переносимы между системами, имеющими одинаковый API.

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

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

Для этого случая архитектура виртуальных машин должна обеспечивать ISA (интерфейсы 1 и 2), как показано на рис.8.3.

В общем случае ISA Системной виртуальной машины не обязательно совпадает с ISA аппаратуры. Но при консолидации серверов, как правило, стоит задача обеспечить выполнение в виртуальных машинах операционных систем (так называемых, "гостевых" систем), разработанных для конкретного оборудования, поэтому Системная виртуальная машина должна обеспечить для гостевой системы такой ISA, чтобы гостевой операционной системе "казалось", что она работает на реальной аппаратуре.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]