Архитектура Microsoft Windows для разработчиков


Виртуальные машины


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-программ

  1. В папке WA\Practice\Ch01 дважды щелкните файл Spind16. Будет запущена программа SPIND16.
  2. Щелкните Open.
  3. На экране откроется диалоговое окно Open.
  4. Выберите файл Billg.bmp и щелкните кнопку ОК.

    В окне SPIND16 появится изображение Билла Гейтса.

  5. Щелкните кнопку Spin или Flip.

    Изображение должно повернуться или подскочить соответственно, а затем вернуться в нормальное положение. Время, затраченное на выполнение операции, будет указано в правой части панели инструментов.

  6. Повторите пункты 1—4 с программой SPIND32.
  7. Оставьте обе программы активными.
  8. > Создание 16-разрядной общей ошибки защиты

    1. Запустите файл Badapp16.exe из папки WA\Practice\Ch01.
    2. Расположите окна программ на рабочем столе так, чтобы видеть их все.

      Для этого, например, щелкните правой кнопкой мыши панель задач Windows и выберите в меню команду Tile Horizontally или Tile Vertically. Они автоматически выравнивают все окна открытых программ на рабочем столе.



    3. Переключитесь в окно программы Bad App.
    4. В меню Action выберите команду Options и отключите звук.

    5. В меню Action выберите GP-Fault.

      Когда фитиль на экране догорит, бомба взорвется. В этот момент возникнет общая ошибка защиты.

      Windows 95 откроет диалоговое окно с предложением завершить приложение или проигнорировать ошибку.

    6. Щелкните кнопку Close.

      Windows 95 откроет диалоговое окно Application Error с детальным описанием ошибки и второй кнопкой Close. Оставьте это диалоговое окно открытым.

    7. Переключитесь в окно SPIND32.

      Активна ли программа?

      ответ

    8. Переключитесь в окно SPIND16.

      Активна ли программа?

      ответ

    9. Щелкните кнопку Close в диалоговом окне Bad App.

      Активно ли приложение SPIND16?

      ответ

    10. Оставьте приложения работать.


    11. > Пример зависания 16-разрядного Windows-приложения


      1. Снова запустите файл Badapp16.exe.


      2. Расположите окна программ на рабочем столе так, чтобы видеть их все.


      3. В меню Action окна Bad App выберите команду Hang. Когда фитиль на экране догорит, бомба взорвется. В этот момент приложение остановится.

      4. Убедитесь, что ни одна программа (ни 32-разрядная, ни 16-разрядная) не откликается.


      5. Откройте диалоговое окно Close Programs, нажав клавиши CTRL+ALT+DEL.


      6. В списке приложений выберите Bad App [Not responding] и щелкните кнопку End Task.

        Появится диалоговое окно с запросом и кнопками End Task и Cancel.

      7. Второй раз нажмите кнопку End Task. Остальные программы станут активными.



      8. Содержание раздела