Прикладные программы для Windows 9.x выполняются в виртуальных машинах, которые создает ОС. Виртуальная машина представляет собой среду, имитирующую отдельный (виртуальный) компьютер со всеми его системными и периферийными устройствами. Благодаря системе виртуальных машин работникам ПО не приходится беспокоиться о том, чтобы их программы отслеживали использование ресурсов компьютера другими программами, так как память и наборы ресурсов каждой виртуальной машины изолированы от памяти и ресурсов других виртуальных машин. Когда загружается Windows , всегда создается системная виртуальная машина, в пределах которой выделяется отдельное адресное пространство для ядра системы. Каждому запущенному 32 - разрядному приложению Windows (Win 32) также выделяется отдельное адресное пространство адресов в пределах системной виртуальной машины. Для всех 16 - разрядных приложений Windows система Windows 9.x использует общее адресное пространство в пределах системной виртуальной машины. Каждое приложение Dos выполняется в собственной виртуальной машине.
Управление программами Windows 9.x основано на модели передачи сообщений. Каждое событие приводит к генерации сообщений. Windows использует асинхронную обработку сообщений, то есть поддерживает независимые очереди сообщений.
Так как для каждого приложения Win 32 используется отдельная адресная область в пределах системной виртуальной машины, то для каждого Win 32 - приложения и для каждого создаваемого ими потока используются отдельные очереди сообщений. Все это делает ошибку в Win 32 - приложении безопасной для остальных приложений.
Приложения Win 16 выполняются под Windows 9.x в режиме кооперативной многозначности в общем пространстве адресов в пределах системной виртуальной машины и имеют общую очередь сообщений. Ситуация с «зависанием» программы Win 16 потенциально более опасна: остальные программы Win16 перестанут получать сообщения и тоже «зависнут». Кроме того, заблокированное приложение Win 16 способно повлиять на приложение Win 32, несмотря на то, что они используют независимые очереди сообщений. Это объясняется тем, что если «зависание» происходит в момент обращения, например, к gdi.exe, то уже ни одно приложение не сможет обратиться к этому модулю. В этом случае система оказывается полностью заблокированной.
Кроме того, прерванное приложение Win 16 может не вернуть системе используемые им системные ресурсы. Все системные ресурсы освободятся после того, как будут выгружены все текущие программы Win 16.