- •Глава 9. Компоненты и подсистемы операционных систем Компоненты и подсистемы Windows
- •Ресурсы
- •Управление программами
- •Управление оперативной памятью
- •Файловая система
- •Драйверы устройств ввода/вывода
- •Библиотеки динамической загрузки dll
- •Вставка и привязка объектов ole
- •Другие компоненты и подсистемы
- •Интерфейс графических устройств gdi
- •Управление шрифтами
- •Невытесняющая мультизадачность Microsoft Windows
- •Переключение программ
- •Вытесняющая мультизадачность ibm os/2
- •Семафоры
- •Каналы передачи данных между процессами
- •Очереди
- •Система управления памятью
- •Управление памятью в первых версиях ibm os/2 и в стандартном режиме Microsoft Windows
- •Адресация памяти в ibm os/2 Warp
- •Модель памяти flat
- •Файловая система
- •Недостатки файловой системы dos
- •Файловая система hpfs
- •Библиотеки динамической компоновки
- •Драйверы
- •Создание и удаление каналов
- •Работа с базой данных объектов
Невытесняющая мультизадачность Microsoft Windows
Операционные системы Microsoft Windows версии 3.1 и Microsoft Windows for Workgroups версии 3.11 в некоторой степени решают проблему одновременного использования нескольких программ, организуя невытесняющую (nonpreemptive) мультизадачность, которую еще называют "добровольной" мультизадачностью.
К сожалению, ни пользователь, ни программист, создающий приложения для Microsoft Windows, не может изменять приоритет приложений Windows (хотя пользователь может изменить приоритеты программ DOS, работающих в среде Microsoft Windows).
Дело здесь в том, что для каждой программы DOS операционная система Microsoft Windows создает отдельную виртуальную машину, но все приложения Windows работают на одной системной виртуальной машине. При этом пользователь может изменять приоритеты отдельных виртуальных машин, но не может изменять приоритет приложений Windows, работающих в рамках одной виртуальной машины.
Фактически виртуальные машины Microsoft Windows работают в режиме вытесняющей мультизадачности. При этом каждая виртуальная машина получает для работы квант времени. Системная виртуальная машина Microsoft Windows в этом плане ничем не отличается от виртуальных машин, которые используются для работы программ DOS. Поэтому приложения Windows, добровольно разделяя между собой кванты времени, выделенные системной виртуальной машине, сами по себе работают в режиме невытесняющей мультизадачности.
Чем это плохо?
Потенциально невытесняющая мультизадачность может привести к "зависанию" Microsoft Windows в результате запуска плохо отлаженного приложения, которое не собирается "делиться" ресурсами с другими приложениями. В результате пользователь часто бывает вынужден выполнять перезагрузку компьютера, что не всегда приемлемо.
Операционная система OS/2 Warp
Состав и особенности IBM OS/2 Warp
Операционная система IBM OS/2 Warp, в отличие от Microsoft Windows и Microsoft Windows for Workgroups, является полнофункциональной, т. е. для ее работы не требуется DOS. Она устанавливается в отдельный раздел жесткого диска или в раздел DOS (по усмотрению пользователя). После загрузки IBM OS/2 Warp получает полный контроль над аппаратным и программным обеспечением компьютера, что значительно повышает надежность системы по сравнению с тандемом "DOS - Microsoft Windows".
Ядро IBM OS/2 Warp, как и ядро всякой другой полнофункциональной операционной системы, содержит весь набор компонент, или систем, необходимых для решения таких задач, как обеспечение доступа к дискам, управление памятью, запуск программ, организация межпрограммного взаимодействия, организация интерфейса с пользователем и т. д.
Рассмотрим кратко особенности основных систем. Более подробное описание вы найдете в соответствующих главах этой и следующих книг серии "Библиотека системного программиста", посвященных операционной системе IBM OS/2 Warp.
Система управления процессами
Мультизадачность
Операционная система IBM OS/2 Warp по-настоящему является мультизадачной, причем в отличие от Microsoft Windows в OS/2 используется так называемая вытесняющая (preemptive) мультизадачность.
Сегодня уже, наверное, излишне подробно описывать те преимущества, которые дает мультизадачность, однако мы все же сделаем некоторые замечания по этому поводу.
Как правило, пользователю нужно работать одновременно с несколькими программами. Например, при подготовке текстового документа или в процессе работы с базой данных может возникнуть необходимость отправить или принять факс, поискать что-нибудь в справочной базе данных или просто посчитать на калькуляторе. Поэтому возможность переключения программ имеет очень большое значение.
