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

Глава 3. Операционные системы Windows 9x/ME

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

ОС Windows 95 разработана фирмой Microsoft прежде всего для предотвращения перехода пользователей Windows 3.x в среду OS/2 с увеличением мощности персональных вычислительных средств. Windows 95 справилась с этой задачей, но не за счет своих объективных достоинств, а за счет крупномасштабной рекламной компании, начавшейся задолго до ее появления на рынке.

В отличие от Windows 3.x, Windows 95 является полнофункциональной ОС, осуществляющей управление всеми ресурсами вычислительной системы [5]. Для ее выполнения не требуется MS DOS, код MS DOS v.7 встроен в Windows 95 только для поддержки выполнения приложений MS DOS.

Архитектура Windows 95 показана на рисунке 3.1. ОС Windows 98 [15] (и Windows ME) отличаются от Windows 95 прежде всего дизайном интерфейса и некоторыми системными сервисами, но строятся на принципиально том же ядре.


Рисунок 3.1 Архитектура Windows 95

Windows 95 разработана для процессора не ниже Intel 80386, то есть ориентирована на 32-разрядное машинное слово и защищенный режим процессора. Основу той части Windows 95, которая работает в незащищенном режиме, составляет так называемая системная виртуальная машина, которая обеспечивает среду выполнения всех приложений, написанных для Windows 95. Функции модулей GDI, Kernel, User - те же, что и в Windows 3.x, около 50% объема этих модулей просто перенесены из Windows 3.x.

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

Для выполнения приложений MS DOS создается виртуальная машина MS DOS как копия эталонной машины MS DOS. Каждая такая виртуальная машина MS DOS обеспечивает адресное пространство для выполнения программ MS DOS и содержит код MS DOS v.7. Выполнение низкоуровневых операций обеспечивается для виртуальной машины MS DOS частью ОС Windows 95, работающей в режиме ядра (уровень 0). Приложения MS DOS независимы друг от друга, но они совместно используют драйверы реального режима и разделяют младшие адреса памяти.

Часть системы, работающая в режиме ядра, обеспечивает собственно управление ресурсами: памятью, процессами и т.д.

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

Windows 95 обеспечивает вытесняющую многозадачность, то есть разделение процессорного времени между двумя и более процессами и нитями. Однако, поскольку часть кода ядра ОС заимствована из Windows 3.x и является нереентерабельной, прерывания активного процесса возможны не в любой момент времени. Для совместимости с заимствованным нереентерабельным кодом в Windows 95 введены специальные модули-переходники, которые, во-первых, преобразуют 32-разрядный API в 16-разрядный, а, во-вторых, блокирует совместное использование нереентерабельной части ядра.

Планирование процессов выполняется с динамическим перевычислением приоритетов. Механизм управления процессами обеспечивается двумя модулями:

Квант отдается процессу с наивысшим на данный момент приоритетом. Если несколько процессов имеют высший приоритет, то квант делится между ними поровну.

Всего имеется 32 градации приоритетов. Правила изменения приоритетов следующие:

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

Адресное пространство процесса (речь идет о процессах-приложениях, разработанных для Windows 95) структурировано таким образом, как показано на рисунке 3.2.


Рисунок 3.2 Структура адресного пространства для приложения Win32

Каждому процессу в Windows 95 выделяется всего один сегмент и виртуальный адрес, таким образом, представляет собой только смещение в сегменте. Для процесса, таким образом, обеспечивается плоская модель памяти. Элементы страничных каталогов, относящиеся к адресному пространству выше 2 Гбайт, для всех процессов указывают на одни и те же таблицы страниц второго уровня. Обращение процесса к системе имеет вид вызова процедуры, находящейся в адресном пространстве процесса (в старших адресах памяти). Совместное использование верхней половины виртуального адресного пространства всеми процессами создает потенциальную (и часто реализующуюся в Windows 9x) возможность нарушений в работе системы: если один процесс "портит" содержимое верхней части своего адресного пространства, то он тем самым "портит" его и для всех других процессов.

Совместно используемые области памяти, размещаемые в адресном пространстве 2 - 3 Гбайт, называются в Windows 9x "файлами, отображаемыми в память". Один процесс создает такой файл, другой - открывает его. Системные вызовы создания/открытия "файла, отображаемого в память" возвращают виртуальный адрес общей области памяти (одинаковый для всех процессов, его использующих).

3.4. Файловая система

В Windows 95 применяется механизм инсталлируемой (загружаемой) файловой системы, который обеспечивает системы работать с томами, содержащими различную организацию данных. Структура инсталлируемой файловой системы показана на рисунке 3.3.


Рисунок 3.3 Инсталлируемая файловая система Windows 9x

Самый верхний уровень файловой системы Диспетчер Инсталлируемой Файловой Системы (ISF - Installable File System), который обеспечивает интерфейс между запросами процессов и конкретной файловой системой. Диспетчер IFS играет роль абстрактной файловой системы. Конкретные файловые системы называются драйверами файловых систем (FSD - File System Driver). Драйверы FSD ответственны за семантику конкретных файловых систем. Каждый такой FSD поддерживает определенную организацию файловые системы и обслуживает запросы, которые передает ему Диспетчер IFS. Диспетчер IFS обеспечивает также для FSD некоторые общие сервисные функции: управление памятью, управление событиями, синтаксический разбор имен файлов и т.п. Каждый FSD при своей инициализации регистрируется у Диспетчера IFS, выдавая специальный системный вызов монтирования (для тома) или регистрации (для сетевой файловой системы). В процессе регистрации FSD передает Диспетчеру IFS адреса своих входных точек. Эти входные точки однозначно соответствуют файловым системным вызовам из состава API. Таким образом, в самой ОС почти совсем отсутствует общая обработка системных вызовов, и основная функция IFS - опознание того FSD, которому следует переадресовать вызов. Опознание адресата Диспетчер IFS производит следующим образом:

Подсистема ввода-вывода - IOS - выполняет две функции: управляющего модуля, который распределяет обращения, и сервисные функции для драйверов.

Драйвер отслеживания тома - VTD - контролирует смену носителей на устройствах.

Cпецифический дисковый драйвер - TSD - управляет всеми устройствами определенного типа и преобразует виртуальные адреса на устройстве в физические.

Драйверы независимых разработчиков - VSD - (необязательные) выполняют любую дополнительную обработку данных.

Драйвер порта - аппаратно-зависимый драйвер, выполняющий обмен данных с устройством на низком уровне.

В Windows 95 идея независимой от драйверов модификации данных реализована таким образом, что в ОС определено общее количество звеньев в цепочке обработки, которую проходят данные, - 32. IOS составляет уровень 0, драйвер порта - уровень 31. Между ними, следовательно, возможно еще 30 уровней, которые могут быть заняты драйверами VSD, при установке драйвера VSD можно выбрать уровень, на котором он будет включен в цепочку.

Что касается конкретной файловой системы, то файловые системы Windows 95 - VFAT (виртуальная FAT) и FAT-32. Их структура в принципе такая же, как и FAT-16, но VFAT позволяет работать с длинными именами файлов (за счет того, что одному файлу может соответствовать несколько элементов каталога: основной и продолжения), а в FAT-32 вдобавок к этому элемент FAT имеет размер 32 бита, следовательно, позволяет работать с большим числом кластеров на диске. Структура элемента каталога - та же, что и у FAT-16, но размер имени файла может достигать 250 символов. Это достигается тем, что для файлов с длинными именами выделяется несколько элементов каталога, и специальная комбинация атрибутов файла отличает элемент, содержащий продолжение имени от первого элемента. Кроме того, корневой каталог в FAT-32 уже не привязан жестко к определенному месту на диске, следовательно, снимается ограничение на его размер.

3.5. Другие свойства Windows 9x

Средства взаимодействия процессов в Windows 95 - семафоры, события и переменные взаимного исключения. Каждое из этих средств имеет собственный API для создания и управления, но для ожидания на всех объектах синхронизации используются одни и те же системные вызовы.

Интерфейс Windows 95 хорошо известен всем пользователям, так что нет нужды описывать его подробно. Он создавался по образцу объектно-ориентированного интерфейса Mac OS фирмы Apple. Однако, интерфейс Windows 95 является не объектно-, а документо-ориентированным. Объектами в строгом смысле являются файлы программ и данных. Некоторые управляющие компоненты (в том числе и сам Рабочий Стол) объектами не являются, а только имитируют объектное поведение. В Windows 98 в связи с интеграцией в нее Web-броузера внешний вид интерфейса несколько изменился, но принципы его построения и функционирования остались те же.

Поскольку Windows 95 является однопользовательской системой, задача защиты ресурсов ставится в ней только в смысле разделения ресурсов разных процессов. Принятые в системе "облегченные" методы такого разделения создают потенциальную возможность для возникновения ошибок в системе, для устранения которых потребовалась бы тщательная отладка системного кода. Любому пользователю Windows 95, однако, хорошо известно, что такая отладка фирмой Microsoft не производится. Но эту ситуацию можно если не простить, то понять. Windows 95 является персональной ОС и не предназначена для выполнения критических приложений. Как правило, сбой системы не приводит к потерям большим, чем несколько минут, потраченных на перезагрузку, и испорченное настроение. Пока пользователи продолжают покупать ОС, пусть даже и ненадежно работающую, для фирмы нет смысла увеличивать затраты на повышение надежности.

С самого начала фирма Microsoft рассматривала Windows 95 как некий суррогат, призванный обеспечить удержание фирмой позиций до выхода в свет новой ОС (сначала предполагалось, что это будет Windows NT v.4, затем - Windows 2000). Ориентация на широкий круг непрофессиональных пользователей и активная, хотя и не всегда честная рыночная политика привели к тому, что Windows 95 стала монополистом на рынке персональных ОС. Версия Windows 98 строится на том же ядре и отличается прежде всего интегрированным в систему Web-броузером Microsoft Internet Explorer. В 2000 году появилась новая версия - Windows ME (Millenium Edition). Следует ожидать, что эта версия будет не только использоваться, но и развиваться в течение еще нескольких лет прежде, чем уступит место более надежным системам (например, Windows 2000).

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

  1. Чем отличается многозадачность Windows 9x от многозадачности Windows 3.x?
  2. К чему приводит использование части системных модулей Windows 3.x в Windows 9x?
  3. Почему утверждается, что в Windows 9x встроена MS DOS?
  4. Какую из описанных в части I моделей памяти реализует Windows 9x?
  5. Каким из способов, описанных в главе 9 части I, реализованы в Windows 9x общие области памяти?
  6. Какие недостатки файловой системы FAT-16 устранены в FAT-32? Какие недостатки унаследованы?
  7. Каким из способов, описанных в главе 7 части I, реализована файловая система в Windows 9x?
  8. Ответьте честно и мотивированно: если бы Вы были в руководстве фирмы Microsoft, стали ли бы Вы добиваться стабильной работы Windows 9x?

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