Блог → Об операционных системах виртуальных машин

Как я уже говорил, на виртуальной машине может работать любая операционная система, функционирующая на реальной ЭВМ ЕС например ОС ЕС, ДОС ЕС и даже СВМ ЕС. Операционные системы такого рода называются гостевыми по отношению к СВМ ЕС, поскольку они не входят в её состав. Основная операционная система, в которой собственно и работает ВМ, называется хост-системой. Существует группа операционных систем, спроектированных специально для виртуальных машин, и поэтому не способных работать на реальной ЭВМ ЕС. Естественно, эти системы разрабатывались с учетом того, что существует МВМ. Разработчики старались не дублировать в операционных системах, предназначенных для ВМ, того, что умеет делать МВМ. В нужных местах такие системы выполняют специальную команду обращения к МВМ, который и делает за них всё необходимое. Функции обращения к МВМ выполняет команда "диагностика". В рассматриваемую группу операционных систем входят: подсистема диалоговой обработки, подсистемы дистанционной и сетевой передачи файлов (ПДП и ПСП), подсистема контроля технических средств (ПКТ).

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

Подсистема контроля технических средств предназначена для оперативного контроля работоспособности устройств ввода-вывода. К операционным системам ВМ относится и базовая операционная система (БОС), особенности которой рассматриваются ниже. Работу гостевых операционных систем на ВМ я опишу на примере ОС ЕС. Единственное, что замечает пользователь при работе ОС ЕС на ВМ - это существенное замедление выполнения задания, по сравнению с работой ОС ЕС на реальной ЭВМ. Имеются два основных фактора, определяющих это замедление. Первый фактор - в составе СВМ, как правило, работает не только та ВМ, на которой функционирует ОС ЕС, но и ряд других, также использующих ресурсы реальной машины, так что для ОС ЕС достается меньше времени.

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

В наихудших случаях скорость обработки заданий на ВМ может уменьшиться в несколько раз, по сравнению с реальной ЭВМ. В связи с этим необходимы средства повышения быстродействия операционных систем, работающих на ВМ. Такие средства встраиваются и в МВМ, и в операционную систему ОС ЕС. Средства, встраиваемые в МВМ, позволяют повысить как эффективность работы СВМ ЕС в целом, так и быстродействие отдельных виртуальных машин. Первым, наиболее важным средством этого типа является микропрограммная поддержка СВМ ЕС. Это комплекс микропрограмм, дополнительный по отношению к базовому, которым оснащается конкретная модель ЕС ЭВМ. Предусмотрена возможность работы СВМ без микропрограммной поддержки. В этом случае необходимые функции реализуются подпрограммами МВМ, что как правило, оказывается во много раз медленнее. Анализ статистических данных показывает, что при наличии микропрограммной поддержки быстродействие СВМ ЕС можно повысить на 30—40%.

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

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

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

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

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

Весьма радикальным шагом по повышению эффективности функционирования ОС ЕС на ВМ явилось создание специальной версии ОС, предназначенной только для работы на ВМ - базовой операционной системы (БОС). При условии сохранения полной совместимости по программам пользователя с ОС ЕС в режиме SVS основные алгоритмы организации системы были существенно переработаны при проектировании БОС, для того, чтобы обеспечить максимальное быстродействие БОС на ВМ (а необходимым условием эффективной работы БОС является наличие в ЭВМ оперативной памяти не менее 4 Мб). Из интересных новшеств, реализованных в БОС, можно отметить псевдодиски - виртуальные НМД, работа которых моделируется фрагментами страничной памяти. Использование псевдодисков заменяет операции ввода-вывода, привязанные к структуре информации на дисках, страничными операциями и обработкой данных непосредственно в виртуальной памяти.

Напомню, что операционная система БОС не входит в состав СВМ ЕС, а в совокупности с последней образует программный комплекс, называемый ОС7 ЕС. Таким образом, СВМ ЕС поставляется пользователям либо отдельно, либо в составе ОС7 ЕС.