Виртуальные машины
Windows NT выполняет приложения в рамках виртуальных машин (Virtual Machine, VM). Фактически VM — это создаваемая операционной системой среда для выполнения приложения, которая полностью эмулирует все ресурсы компьютера. С точки зрения приложения, виртуальная машина — это полноценный компьютер, предоставляющий ему все имеющиеся ресурсы.
Рис. 1.8 Виртуальные машины
Каждое 16-разрядное Windows- и MS-DOS-приложение под управлением Windows NT выполняется в отдельном адресном пространстве, называемом виртуальной DOS-машиной (Virtual DOS Machine, VDM). При этом обеспечивается защита программы, a Windows NT может реализовать вытесняющую многозадачность для всех сервисов операционной системы и приложений.
В Windows 95 предусмотрено выполнение MS-DOS-приложений в отдельных VDM, однако, поскольку часть памяти доступна всем виртуальным машинам, MS-DOS-приложения представляют собой потенциальную угрозу стабильности системы.
> Проверка функций 16- и 32-разрядных Windows-программ
- В папке WA\Practice\Ch01 дважды щелкните файл Spind16. Будет запущена программа SPIND16.
- Щелкните Open.
- На экране откроется диалоговое окно Open.
- Выберите файл Billg.bmp и щелкните кнопку ОК.
В окне SPIND16 появится изображение Билла Гейтса.
- Щелкните кнопку Spin или Flip.
Изображение должно повернуться или подскочить соответственно, а затем вернуться в нормальное положение. Время, затраченное на выполнение операции, будет указано в правой части панели инструментов.
- Повторите пункты 1—4 с программой SPIND32.
- Оставьте обе программы активными.
- Запустите файл Badapp16.exe из папки WA\Practice\Ch01.
- Расположите окна программ на рабочем столе так, чтобы видеть их все.
Для этого, например, щелкните правой кнопкой мыши панель задач Windows и выберите в меню команду Tile Horizontally или Tile Vertically. Они автоматически выравнивают все окна открытых программ на рабочем столе.
- Переключитесь в окно программы Bad App.
- В меню Action выберите команду Options и отключите звук.
- В меню Action выберите GP-Fault.
Когда фитиль на экране догорит, бомба взорвется. В этот момент возникнет общая ошибка защиты.
Windows 95 откроет диалоговое окно с предложением завершить приложение или проигнорировать ошибку.
- Щелкните кнопку Close.
Windows 95 откроет диалоговое окно Application Error с детальным описанием ошибки и второй кнопкой Close. Оставьте это диалоговое окно открытым.
- Переключитесь в окно SPIND32.
Активна ли программа?
ответ
- Переключитесь в окно SPIND16.
Активна ли программа?
ответ
- Щелкните кнопку Close в диалоговом окне Bad App.
Активно ли приложение SPIND16?
ответ
- Оставьте приложения работать.
- Снова запустите файл Badapp16.exe.
- Расположите окна программ на рабочем столе так, чтобы видеть их все.
- В меню Action окна Bad App выберите команду Hang. Когда фитиль на экране догорит, бомба взорвется. В этот момент приложение остановится.
- Убедитесь, что ни одна программа (ни 32-разрядная, ни 16-разрядная) не откликается.
- Откройте диалоговое окно Close Programs, нажав клавиши CTRL+ALT+DEL.
- В списке приложений выберите Bad App [Not responding] и щелкните кнопку End Task.
Появится диалоговое окно с запросом и кнопками End Task и Cancel.
- Второй раз нажмите кнопку End Task. Остальные программы станут активными.
> Создание 16-разрядной общей ошибки защиты
> Пример зависания 16-разрядного Windows-приложения