Лекция: Виртуальные машины.

Принцип виртуализации позволяет представить структуру системы в виде определённого набора планировщиков процессов и распределителей ресурсов (мониторов) и использовать единую централизованную схему распределения ресурсов. Естественным проявлением концепции виртуальности является понятие виртуальной машины.

По сути, любая ОС, являясь средством распределения ресурсов и организуя по определённым правилам управление процессами, скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их некоторой абстракцией, которая способна воспринимать программы, написанные на определённом языке программирования.

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

Виртуальная машина – модель структуры ОС, исполняющая некоторый код (например, байт-код, шитый код, p-код или машинный код реального процессора).

Зачастую виртуальная машина эмулирует работу реального компьютера. На виртуальную машину, так же как и на реальный компьютер, можно устанавливать операционную систему, у виртуальной машины также есть BIOS, оперативная память, жёсткий диск (выделенное место на жёстком диске реального компьютера), могут эмулироваться периферийные устройства.

Первой виртуальной машиной была VM/370. Эта система была основана на факте, что система с разделением времени обеспечивает:

— многозадачность;

— расширенную машину с более удобным интерфейсом.

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

Идея виртуальной машины очень часто используется в наши дни для работы старых программ, написанных для системы MS-DOS на Pentium, т.е. создается режим виртуального процессора 8086. В этом случае возможны две ситуации:

— сама MS-DOS загружена в адресное пространство виртуальной машины 8086, так что монитор виртуальной машины только отсылает прерывания назад к MS-DOS, как это происходит на реальном 8086, затем MS-DOS пытается сама осуществить ввод-вывод, операции перехватываются и выполняются монитором виртуальной машины;

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

Второй вариант не безупречен, т.к. он моделирует только MS-DOS и никакие другие операционные системы. Второй вариант намного быстрее первого варианта, т.к. избегает проблем запуска MS-DOS для выполнения ввода-вывода. Еще один недостаток фактического запуска MS-DOS в режиме 8086: MS-DOS часто оперирует флагом разрешения/запрещения прерывания, а моделирование этого требует больших затрат.

Кроме того, виртуальные машины используются для работы программ Java. Когда корпорация Sun Microsystems придумала язык программирования Java, она также разработала виртуальную машину (архитектуру компьютера), называемую JVM. Компилятор Java выдает код для JVM, который затем выполняется программным интерпретаром JVM. Код JVM можно передавать через Internet на любой компьютер, имеющий интерпретатор JVM, и запускать там. Другое преимущество JVM — когда интерпретатор реализован должным образом, приходящие JVM-программы можно проверить в целях безопасности и затем запустить в защищенной среде.

 

еще рефераты
Еще работы по информатике