Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
49. Виртуальные ресурсы в компьютерных сетях. Виртуальные накопители, виртуальные внешние устройства, виртуальная память и виртуальные процессоры.
Виртуальная машина (ВМ, от англ. virtual machine)
программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host хост-платформа, платформа-хозяин)
или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы
Виртуальные процессоры это те процессоры, которые видит гостевая ОС на виртуальной машине. Реализация виртуального процессора на реальной машине осуществляется методом квантования времени, когда каждому виртуальному процессору периодически выделяется свой квант времени реального процессора.
Виртуальные устройства
Управление вводом-выводом в полной мере воплощает в себе определение "ОС снаружи": ОС конструирует ресурсы высокого уровня виртуальные устройства и предоставляет пользователю интерфейс для работы с ними. Программисты, начинавшие работу в среде MS DOS, привыкли к доступности средств прямого управления вводом-выводом для любой программы, но в многозадачных ОС о такой доступности для прикладной программы может идти речь только в исключительных случаях, а в многопользовательских ОС она исключается вообще.
Можно в общем случае определить четыре метода, которые могут использоваться ОС для конструирования виртуальных устройств (виртуализации):
метод закрепления или выделения (allocation);
метод разделения (sharing);
метод накопления или спулинга (spooling);
метод моделирования (simulation).
Одна и та же ОС может использовать разные методы виртуализации для разных устройств.
Метод закрепления однозначно отображает виртуальное устройство на реальное устройство. Метод закрепления наименее эффективен, так как закрепляемое устройство является монопольно используемым ресурсом, и применение этого метода порождает все проблемы, связанные с использованием таких ресурсов.
Метод разделения применим к устройствам, ресурс которых является делимым. В этом случае ресурс устройства разбивается на части, каждая из которых закрепляется за одним процессом. Примером применения метода могут служить минидиски в ОСVM/370 [28]: все пространство диска разбивается на участки, каждый из которых выглядит для процесса как отдельный том. Можно, например, разделять между процессами и экран видеотерминала. Зафиксированная часть устройства является также монопольным ресурсом и разделение лишь частично снимает остроту проблем управления таким ресурсом. Возможность дробления устройства предполагает внутреннюю адресацию в устройстве (адрес на диске, адрес в видеопамяти). По аналогии с адресацией в памяти процесс и здесь работает с виртуальными адресами в виртуальном устройстве, а ОС транслирует их в реальные адреса в реальном устройстве.
Метод спулинга заставляет процесс обмениваться данными не с реальным устройством, а с некоторой буферной областью в памяти (оперативной или внешней). Обмен же данными между буфером и реальным устройством организует сама ОС, причем, как правило, с упреждением (при вводе) или с запаздыванием (при выводе). Буферизация прозрачна для процессов и может создавать у них иллюзию одновременного использования устройства, если каждому процессу выделен свой буфер. Примером могут служить спулинг печати, применяемый во всех современных ОС.
Метод моделирования не связан с реальными устройствами вообще. Устройство моделируется ОС чисто программными методами. Естественным применением этого метода является отработка приемов работы с устройствами, отсутствующими в конфигурации данной вычислительной системы. Часто ОС удобно представлять некоторые свои ресурсы как метафоры (подобия) устройств это также моделируемые устройства. Так, в VM/ESA обмен данными между виртуальными машинами ведется через виртуальный адаптер, метафорой устройства можно также считать межпрограммный канал (pipe), реализованный во многих современных ОС.
При любом методе виртуализации ОС является "прослойкой" между процессами и реальными устройствами. Эту функцию выполняют входящие в состав ОС драйверы устройств. К драйверам обращаются и другие модули ОС, и процессы пользователя, причем последние, как правило, не непосредственно, а через библиотеки вызовов, предоставляющие более удобный API. В некоторых случаях ОС может предоставить пользователю интерфейс, обладающий высокой степенью подобия с интерфейсом реального устройства, но и в этом случае ОС, даже применяя метод выделения, производит обработку управляющих воздействий, сформированных процессом: проверку правильности команд, трансляцию адресов памяти, адресов устройств и адресов в устройствах и т.п.
Виртуальный диск, или образ диска (image) файл, содержащий в себе полную копию содержания и структуры файловой системы и данных, находящихся на диске таком как компакт-диск, дискета или раздел жёсткого диска. Термин описывает любой такой файл, причём не важно, был ли образ получен с реального физического диска или нет. Таким образом, образ диска содержит всю информацию, необходимую для дублирования структуры, расположения и содержания данных какого-либо устройства хранения информации. Обычно образ диска просто повторяет набор секторов носителя, игнорируя файловую систему, построенную на нём.
Виртуа́льный при́нтер это компьютерная программа, интерфейс которой аналогичен обычному драйверу принтера, но реальным принтером она не управляет. Когда пользователь запускает печать документа на таком принтере, программа определённым образом обрабатывает полученный поток графических команд, иногда позволяя вносить в него изменения, а результат обработки обычно записывается в файл.
Обычно виртуальный принтер используется для:
преобразования документов в формат PDF, Djvu или PostScript;
преобразования документов в графические файлы, например, в JPEG или TIFF, для представления в универсальном, платформо-независимом формате;
отправки документов на сервер факсимильных сообщений.
Виртуальный принтер может использоваться для проверки того, как именно будет выглядеть документ при печати.
Виртуальная память
В современных вычислительных системах пользовательская программа может получить в своё распоряжение весьма большой объём оперативной памяти, значительно превышающий имеющийся объём реальной (физической) оперативной памяти. Достигается это за счет организации так называемой виртуальной, т.е. кажущейся, воображаемой памяти, в которую наряду с ОП включается часть внешней (обычно дисковой) памяти. При этом пользователь работает в виртуальном адресном пространстве как в обычной памяти, а все заботы о ее имитировании берет на себя оборудование и операционная система.
Реализация виртуальной памяти (ВП) достигается за счёт двух программно-аппаратных механизмов:
Сегментно-страничной организации памяти (ССОП);
Механизма динамического преобразования адресов (ДПА).
Табл.1. Структура физического адреса.
Индекс сегмента |
Индекс страницы |
Смещение в сегменте |
Любой формируемый в программе адрес рассматривается как состоящий из трех частей: индекса сегмента, индекса страницы и смещения в сегменте (табл.1). Операционная система ведет для каждой выполняемой в данный момент задачи каталоги сегментов и страниц. Сегмент это довольно большой блок памяти, страница это составная часть сегмента меньшего объёма. Часть страниц сегмента присутствует в оперативной памяти, а часть может храниться во внешней. В каждый момент времени выполняющаяся задача имеет так называемое рабочее множество страниц, которое ей используется. Если оно полностью помещается в ОП, то реализация ВП осуществляется только с помощью ДПА. Для этого сначала осуществляется поиск описателя сегмента в таблице сегментов, на который указывает один из системных регистров (локальная или глобальная таблица сегментов, таблица векторов прерываний регистры LDTR, GDTR или IDTR). В описателе сегмента присутствует адрес таблицы страниц данного сегмента. В этой таблице по индексу страницы находится соответствующая строка, содержащая физический адрес данной страницы в оперативной памяти. К этому адресу добавляется смещение, и получается физический адрес команды или операнда.
Такой процесс вычисления адреса требует больших дополнительных затрат времени. Поэтому процессор, вычислив физический адрес виртуальной страницы помещает его в один из теневых регистров, и при всех следующих обращениях внутри данной страницы берёт их оттуда. Теневые регистры программно недоступны и используются внутри CPU.