

Архитектуры и модели программ и знаний
Лекция 16
Виртуализация - Virtualization
Сафонов Владимир Олегович
Профессор кафедры информатики Заведующий лабораторией Java-технологии
(http://polyhimnie.math.spbu.ru/jtl)
Санкт-Петербургский государственный университет
Email: vosafonov@gmail.com
WWW: http://www.vladimirsafonov.org

Общее понятие о виртуализации
Виртуализация – абстракция вычислительных ресурсов, например:
Виртуальная машина – абстрактная машина, полностью предоставляемая пользователю
Виртуальная память (в ОС) – механизм расширения пространства памяти засчет моделирования образа расширенной памяти на диске, с использованием таблицы страниц
Виртуальный рабочий стол (virtual desktop) – механизм предоставления пользователю в каждом сеансе работы нескольких виртуальных рабочих столов для каждой решаемой задачи и переключения с одного на другойПонятие виртуализации имеет многолетнюю историю
(концепции виртуальной памяти и виртуальной машины появились в 1960-х гг.), но в настоящее время его значение еще более увеличилось, в связи с повышенными требованиями к безопасности и ресурсам для решения вычислительных задач
(C) Сафонов В.О. 2012

Виртуальные машины и платформы
Виртуальная машина – программная реализация
компьютерной архитектуры
Виртуализация платформы – отделяет ОС от остальных компьютерных ресурсов
Полная виртуализация – существенные машинные
инструкции заменяются с помощью двоичной компиляции
или обрабатываются через прерывания; все ПО полностью может исполняться на виртуальной машине (Microsoft
Virtual PC, IBM CP/CMS, Sun VirtualBox; VMWare Workstation).
В частности, позволяет инсталлировать на виртуальную машину другую ОС (например, более новую), требующую большего объема ресурсов, чем на реальной машине
Частичная виртуализация – только для некоторых видов
приложений, кроме ОС
(C) Сафонов В.О. 2012

Примеры виртуальных машин
Smalltalk-машина – Xerox PARC, 1980-Java Virtual Machine (JVM) Sun, 1995-.NET Common Language Runtime / Virtual Execution System (VES), Microsoft, 2000-
Общие черты: Все указанные VM основаны на использовании стека и “байткода” (термин введен разработчиками SmallTalk) – постфиксной записи инструкций
Все указанные VM оптимизируют выполнение виртуального кода с помощью Just-in-Time компиляторов (идея впервые реализована для SmallTalk)
(C) Сафонов В.О. 2012

Виртуализация приложений
Исполнение отдельных приложений на другой аппаратуре и ОСПереносимое приложение – исполняемое со съемного носителя, например, с flash-памяти
Кросс-платформная виртуализация – позволяет исполнять ПО, предназначенное для определенной платформы и ОС, на различных платформах под управлением различных операционных систем
Виртуальное устройство (appliance) – образ виртуальной машины, предназначенный для исполнения в виртуальной средеЭмуляция (симуляция) – моделирование выполнения команд одной аппаратной платформы на другой
Двоичная компиляция (binary compilation) – компиляция непосредственно из бинарного кода одной платформы в бинарный код другой платформы (без использования исходных кодов приложения). Позволяет переносить на новые аппаратные платформы достаточно сложные приложения, вплоть до игр и операционных систем
(C) Сафонов В.О. 2012

Виртуализация памяти
Виртуальная память (memory)– Механизм (в ОС), позволяющий адресовать смежные участки (виртуальной) памяти большего объема, чем объем памяти аппаратной платформы
Виртуальное хранилище (storage) – Полное абстрагирование концепции логического хранилища от его физического представления
Виртуализация баз данных – Абстрагирование от уровня баз данных, лежащего между уровнем хранения и уровнем приложений
(C) Сафонов В.О. 2012

Виртуализация сетевых ресурсов
Виртуальная частная сеть (Virtual Private Network, VPN) – сеть, в которой взаимодействие между некоторыми узлами осуществляется особым образом (по “виртуальным цепям”) в рамках более широкой сети, например, Интернета
VPN – общепринятый способ удаленной работы над конфиденциальными проектами через Интернет, поддерживаемый в Microsoft Windows, требующий аутентифицируемого через логин и пароль доступа к серверу VPN
В общем случае, виртуализация сети – создание виртуализованного пространства для адресации узлов некоторой подсети
P2P (Peer-to-Peer) network – подсеть TCP/IP – сети с особым, обычно более эффективным, механизмом адресации и поиска узлов, например, с использованием Distributed Hash Tables – распреледенных хеш-таблиц, ускоряющих поиск узлов подсети
(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 16
1.Инсталлируйте на своем компьютере продукт Microsoft Virtual PC
2.В полученной виртуальной машине инсталлируйте ОС Windows 2008 или Windows 7 3.Поэкспериментируйте в работе в такой гибридной конфигурации реальной и виртуальной машин в различных ОС 4.Сформулируйте суть концепции виртуальной памяти и ее преимущества 5.Поэкспериментируйте в удаленной работе с Вашей фирмой-партнером через VPN средствами Microsoft Windows
(C) Сафонов В.О. 2012