Обзор архитектуры Windows 3.x,Windows 95,OS2 Warp,Windows NT

  d8ef8794     

WINDOWS 3.1X


В основе организации Windows 3.1x лежит 16-разрядна архитектура. Ее ядро, большинство важнейших системных компонентов и собственные прикладные программы представляют собой 16-разрядные коды. (Ее редко используемый интерфейс Win32s API дает возможность выполнять 32-разрядные прикладные программы, но не позволяет работать с несколькими потоками.)

Все собственные прикладные программы Windows 3.1x и все ее системные библиотеки DLL отображаются в общее сегментированное виртуальное адресное пространство размером 4 Гбайт. Все эти компоненты видимы (и часто доступны на уровне записи) друг для друга. В нижней части этого адресного пространства, обычно ниже отметки 1 Мбайт, размещаются драйверы устройств реального режима, обеспечивающие взаимодействие с периферийными подсистемами, такими, как видеоплаты или принтеры. В Windows 3.11 драйверы VxD файловой системы используют для отыскания маршрута доступа к диску в защищенном режиме.

Упрощенная организация системы позволяет получить очень малое рабочее множество (working set - прикладной и системный код, который необходимо загрузить в память для любой данной задачи), поэтому Windows 3.1x может успешно выполняться на компьютерах с ОЗУ ограниченного размера. Такая архитектура также способствует повышению эффективности исполнения кода, так как программы могут вызывать функции API из собственного пространства памяти. Недостаток архитектуры состоит в слабой защите от сбоев при неправильной работе программ. Программы и системные компоненты видимы друг для друга, модуль, содержащий ошибки, может легко испортить содержимое памяти, принадлежащей другому процессу. Хотя Windows 3.1x способна восстанавливать свою работоспособность после некоторых нарушений защиты общего характера (GPF), зачастую результатом становится крах всей системы.

Windows 3.1x одновременно выполняет несколько прикладных программ с помощью простого механизма планирования, называемого кооперативной многозадачностью. В этой системе каждая прикладная программа должна добровольно уступить управление, когда, проверив свою очередь сообщений, она обнаруживает, что та пуста. Но если прикладная программа не проверит свою очередь сообщений либо по причине занятости, либо вследствие зависания, то другие прикладные программы лишатся доступа к совместно используемым ресурсам.

Другой недостаток, долгое время вызывавший недовольство пользователей Windows 3.1x, - ограниченность ресурсов модулей GDI и USER. Эти ограничения возникают в связи с тем, что системные библиотеки GDI и USER используют несколько 64-Кбайт динамических областей (хипов) для хранени разнообразных скрытых структур данных, создаваемых выполняющимися в данный момент прикладными программами. Когда эти небольшие хипы переполняются, вы получаете сообщение о нехватке памяти, даже если в системе остается много свободной памяти.



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