1.1.2. Windows 3.Х
С точки зрения массового пользователя, не избалованного OS/2, Windows 3.0 была действительно передовой средой. Она использовала весь объем памяти, адресуемой микропроцессорами 80286, 80386 и выше. С 32-разрядными микропроцессорами (80386 и выше) и при наличии не менее 2 Мбайт памяти Windows 3.0 могла использовать виртуальную память, то есть работать с некоторым пространством на жестком диске как с продолжением оперативной памяти компьютера, размещая в нем данные и код программ.
Windows имела многозадачные возможности с кооперативным использованием процессорного времени “одновременно” работающими приложениями. Кооперативную
многозадачность можно назвать многозадачностью “второй ступени” поскольку она использует более передовые методы, чем .простое переключение задач, реализованное многими известными программами (например, МS-DOS shell из МS-DOS 5.0 при простом переключении активная программа получает все процессорное время, а фоновые приложения полностью замораживаются. При кооперативной многозадачности приложение может захватить фактически столько процессорного времени, сколько оно считает нужным. Все приложения делят процессорное время, периодически опрашивая друг друга.
С другой стороны, режим кооперативной многозадачности менее совершенен, чем режим разделения времени, называемый также вытесняющей многозадачностью. При вытесняющей многозадачности программы потребляют ровно столько процессорного времени, сколько им положено, а не сколько заблагорассудится. За выделение процессорного времени тому или иному приложению отвечает только операционная система, руководствуясь текущими приоритетами. Благодаря этому при вытесняющей многозадачности можно в любой момент переключиться на любой процесс, в отличие от кооперативной многозадачности, при которой для переключения между программами может потребоваться существенная пауза. При вытесняющей многозадачности кажется, что процессы действительно работают одновременно, хотя это на самом деле и не так, - во всяком случае, на компьютере с одним микропроцессором, каким является обычный IВМ РС.
С апреля 1992 года Windows 3.1 официально именуется операционной системой. Интерфейс ее был несколько улучшен, в частности были усилены возможности управления экранными объектами мышью (Drag - and - drop метод перетаскивания). Windows стала непосредственно поддерживать динамический обмен данными между приложениями (DDЕ - Dynamic Data Exchange ). В систему вошли средства мультимедиа, ранее поставлявшиеся отдельно в пакете Windows Multimedia Extension. Для расширения издательских возможностей в Windows была встроена поддержка системы масштабирования шрифтов TrueType.
Windows 3.11 for Workgroups (“для рабочих групп”) позиционировалась как самостоятельная сетевая операционная система для одно-ранговой локальной сети, а также как сетевой клиент для сервера Windows NТ. В остальном Windows 3.11 для рабочих групп являлась слегка улучшенной модификацией Windows 3.1, работающей только в 386-м Расширенном режиме на 32-разрядных микропроцессорах.
А теперь мы постараемся разобраться в том, как устроена Windows.
Режимы работы Windows 3.X Чтобы запустить мотор Windows на полную мощность, конечно, нужны прежде всего мегабайты и мегабайты оперативной памяти. Но их невозможно использовать на микропроцессорах 8088/86. Не слишком удачным решением был и защищенный режим 80286: для того чтобы использовать на компьютере приложения для новой операционной среды вместе с МS-DOS приложениями, приходилось переключать микропроцессор из защищенного режима в реальный и обратно.
Здесь уместно вспомнить о том, что фирма Microsoft весьма тесно сотрудничала с Intel во время разработки микропроцессора i80386. Microsoft фактически навязала инженерам Intel собственную концепцию режима виртуального микропроцессора 8086-V86, наиболее удобную для разработки операционной системы, использующей МS-DOS приложения вместе с программами защищенного режима. Поскольку в 1990 году рынок еще не был готов к полному переходу на операционную систему для микропроцессора 80386, Windows 3.О могла функционировать в трех режимах, в каждом из которых микропроцессор и память использовались по-разному.
В реальном режиме работы Windows система функционировать даже на компьютере с микропроцессором 8088 или 8086, оборудованном только обычной памятью для работы приложений в реальном режиме Windows 3.0 использовалась только обычная память МS-DOS и отображаемая память.
Стандартный режим Windows 3.0 требовал для работы микропроцессор 80286 и всего 1 Мбайт памяти - 640 Кбайт стандартной и 384 Кбайт дополнительной (настоящая работа начиналась при объеме памяти 4 Мбайт). Для приложений Windows использовалась расширенная память (ХМS). Для программ МS-DOS, загружаемых из-под Windows, применялась обычная память и переключение микропроцессора из защищенного режима в реальный.
Более полно использовал аппаратные ресурсы 386-й Расширенный режим Windows . В этом режиме версии Windows 3.0 и 3.1 работали с виртуальной памятью, имевший примерно втрое больший объем, чем физическая оперативная память. Приложениям МS DOS в 386-м Расширенном режиме отводилась произвольная область памяти, которая в виртуальном режиме 8086 размечалась как обычная память MS DOS . По умолчанию МS-DOS программы загружались занимая, как обычно, весь экран, но могли быть переведены в графическое окно - стандартное окно Windows. Приложения МS-DOS, запущенное из-под Windows в 386-м Расширенном режиме, работало в виртуальной машине, иными словами, считало себя загруженным на своем собственном компьютере и знать не знало о существовании Windows.
Разумеется, для работы в 386-м Расширенном режиме требовался компьютер с микропроцессором не ниже 80386. Объявленные требования к объему памяти (2 Мбайт) опять-таки не стоило принимать всерьез. Минимумом являлись 4 Мбайт памяти, а для более или менее серьезной работы требовались 8 Mбайт или больше.
Структура ядра Windows. Способ, при помощи которого одна и та же система может работать в трех принципиально разных режимах, ориентированных на совершенно разные микропроцессоры, заключается в следующем.
Ядро Windows состоит из трех компонентов Kernel ,User и GDI. При помощи дополнительных DLL-файлов (динамически загружаемых библиотек) поддерживаются отображением стандартных диалоговых окон, протоколы DDЕ (динамического связывания данных) и ОLЕ (связывания и встраивания объектов), взаимодействие с драйверами устройств ввода-вывода и другие черты Windows. Windows -драйверы устройств бывают, кстати, двух видов - “обычные” DLL-драйверы и 386драйверы, последние предназначены опять-таки для работы только в 386-м Расширенном режиме Windows.
Наиболее низкоуровневой частью ядра Windows является модуль Kernel, управляющий распределением памяти, процессами, файловым вводом-выводом и так далее. В разных режимах работы Windows 3.О функции Kernel выполняли различные файлы: kernel.ЕХЕ для Реального режима krnl286.Еxe для Стандартного режима, КrnlЗ86.ЕХЕ для 38б-го Расширенного режима.
Так что Windows 3.0 была разработана как операционная система, имеющая три разных ядра. Когда был упразднен Реальный режим работы, из комплекта поставки Windows 3.1 и исчез файл Kernel.dll. Следующий шаг был сделан, Windows 3.11 для рабочих групп - эта система работала только в 386-м Расширенном режиме. Модуль User (user.ЕХЕ) служит для работы с клавиатурой, мышью, таймером и портами, а также выполняет функции отображения элементов графического интерфейса (окон, меню). Он управляет такими драйверами, как, например, различные драйверы клавиатуры и мыши.
Наконец, модуль GDI (интерфейс графических устройств, файл GDI.ЕХЕ) поддерживает графические процедуры - прорисовку линий, закрашивание, отображение шрифтов (начиная с Windows 3.1 - все операции со шрифтами TrueType) и взаимодействует с драйверами графических устройств - дисплея и принтера. С Windows 3.1 поставлялось более десятка драйверов видеоадаптеров. Для поддержки принтеров в Windows 3.1 впервые была применена архитектура мини-драйверов. Универсальный драйвер принтера NIDRV.DLL выполнял аппаратно-независимые функции печати -несколько десятков мини-драйверов, поставляемых производителями, дополняли универсальный драйвер функциями обходимыми специально для поддержки конкретных устройств и не повторяли уже написанный общий код.
... самом деле включает в себя только данные и их структуру. Таким же образом как и структура OLE клиента, должна выглядеть структурная схема той части контроллера автоматически связываемых объектов, которая отвечающая за взаимодействие с механизмом связывания и внедрения Windows 95. Поскольку, по сути, контроллер должен являться клиентом практически для всех приложений присутствующих в системе, ...
0 комментариев