Индекс
НазадОглавлениеВперед

Глава 2. Операционная система Windows 3.x

2.1. История и архитектура

Операционная система Windows 1.x (1987 г.) разрабатывалась фирмой Microsoft по заказу IBM прежде всего для того, чтобы подготовить пользователей к графическому интерфейсу, который должен был появиться в новой версии совместно разрабатываемой этими двумя фирмами OS/2. Но значительный успех на рынке, пришедший с версией Windows 3.0, явился одной из причин того, что фирма Microsoft решила разорвать свое сотрудничество с IBM и сосредоточиться на этой линии продуктов.

Строго говоря, Windows 1.x - 3.x представляет собой не самостоятельную ОС, а надстройку над MS DOS [2]. Windows запускается как приложение MS DOS, которое перехватывает у MS DOS управление некоторыми ресурсами - прежде всего памятью, процессами и символьными устройствами. Управление же файловой системой остается за MS DOS и для выполнения соответствующих функций Windows обращается к MS DOS.

Архитектура Windows 3.x показана на рисунке 2.1. Ядро Windows состоит из трех модулей, из которых: Kernel - обеспечивает системные функции, User - объекты интерфейса пользователя, GDI - графические функции.


Рисунок 2.1 Архитектура Windows 3.x

Windows первоначально разрабатывалась для процессора Intel 80286, а затем - и для Intel 80386, поэтому ядро и драйверы Windows работают в защищенном режиме. Драйверы устройств Windows уже не используют функции BIOS, а самостоятельно управляют внешними устройствами на физическом уровне. (Это не относится к дисковым драйверам, так как функции файловой системы остаются за MS DOS).

2.2. Управление процессами

Windows 3.x обеспечивает невытесняющую многозадачность. В среде Windows могут выполняться одновременно несколько программ-процессов, но активный процесс не может быть прерван системой, переключение процессов может происходить только в том случае, если текущий активный процесс переходит в состояние ожидания. Отсюда программирование в Windows является событийно-управляемым. Программа представляет собой цикл, каждая итерация которого начинается с ожидания какого-либо сообщения (каковым может быть, например, нажатие кнопки мыши), затем сообщение обрабатывается, и следует новая итерация цикла, которая начинается с ожидания нового сообщения. Ожидание сообщения в начале каждого цикла и является тем моментом, когда процесс может быть вытеснен. Если же программа находится в бесконечном цикле, в теле которого нет системных вызовов, включающих в себя ожидание, то она не может быть прервана и блокирует работу всей системы.

2.3. Управление памятью

Как было сказано, Windows первоначально разрабатывалась для процессора Intel 80286, в котором механизм динамической трансляции адресов работает в сегментной модели виртуальной памяти и используется 16-разрядное адресное слово. Поэтому адресное пространство процесса состоит из сегментов размером не более 64 Кбайт каждый, хотя общее виртуальное адресное пространство процесса может достигать 4 Гбайт. API управления памятью позволяет выделять/освобождать сегменты, а также управлять перемещаемостью и вытесняемостью сегментов. При адаптации к процессору Intel 80386 (сегментно-страничная модель и 32-разрядное адресное слово) версии Windows для этого процессора стали использовать страничную часть механизма трансляции адресов для создания общего для всех процессов виртуального страничного пространства, размер которого в 4 раза превышает размер реальной памяти, а в этом страничном пространстве память распределяется сегментами. API продолжает оставаться сегментным, а свопинг ведется на страничном уровне. Имеется две группы вызовов API - для управления локальными и глобальными сегментами.

В Windows используется динамическая компоновка программ во время загрузки. Модули динамической компоновки, в том числе и системные, совместно используются выполняющимися программами.

2.4. Другие свойства Windows 3.x

Хотя приоритет в создании полноэкранного графического интерфейса пользователя принадлежит фирме Apple (она даже пыталась в судебном порядке оспорить правомочность использования этой идеи фирмой Microsoft), именно в Windows с таким интерфейсом познакомилась основная масса пользователей. Каждый процесс в Windows выполняется в собственном окне, имеющем типовые элементы управления. Для представления объектов используется иконика, многие операции над объектами выполняются при помощи мыши. Однако, интерфейс Windows 3.x не является объектно-ориентированным, так как не обеспечивает автоматического связывания с каждым объектом определенного набора свойств и методов. Средства графического интерфейса неотъемлемо встроены в ядро системы.

Средства взаимодействия процессов - общие сегменты памяти и сообщения. Сообщения посылаются от одного процесса другому или порождаются внешними событиями. В системе имеется общая очередь сообщений, обслуживаемая только по дисциплине FIFO, что снижает надежность системы, так как если процесс не выбирает адресованное ему сообщение, оно блокирует всю очередь.

Поскольку Windows 3.x использует защищенный режим процессора, она обеспечивает значительно лучшую защиту ресурсов, чем MS DOS. Вместе с тем, Windows 3.x является однопользовательской системой, т.е., не включает в себя средств аутентификации пользователей и, соответственно, авторизации. Последняя версия - Windows for Workgroups 3.11 - расширена средствами совместного использования ресурсов локальной сети (файлы, принтеры) группами пользователей.

Windows 3.x, по-видимому, можно считать бесперспективной системой, так как объем парка ПЭВМ той мощности, для которой применение Windows 3.x может быть оптимальным, неуклонно уменьшается. Применяются компьютеры либо с совсем малым объемом ресурсов (MS DOS), либо с большим их объемом (Windows 9x). Для Windows 3.x было создано большое число приложений, и поэтому среда Windows 3.x поддерживается в более поздних ОС (Windows 9x/NT/2000, OS/2). Но в настоящее время процесс вытеснения этих приложений новыми версиями, разработанными для современных ОС, уже почти завершен.

Контрольные вопросы

  1. Почему Windows 3.x нельзя считать полноценной ОС, а только надстройкой над MS DOS?
  2. Как изменялась модель памяти Windows 3.x в ходе ее эволюции?
  3. Как в Windows 3.x реализуется программирование, управляемое событиями?
  4. Каким образом активный процесс в Windows 3.x может лишиться ресурса центрального процессора?
  5. Как Windows 3.x выполняет управление файлами?
  6. Почему системные модули Windows 3.x могут быть нереентерабельными?

НазадОглавлениеВперед
Индекс