Кооперативная и приоритетная многозадачность

Windows’98 поддерживает два типа многозадачности: кооперативную и приоритетную.

С выходом Windows 3.0 было введено понятие кооперативной многозадачности. Оно заключается в следующем: приложение А выполняется в определенное время, достаточное для того, чтобы закончить одну часть задачи, затем оно возвращает управление самой Windows, т.о. Windows может позаботиться о системных задачах и позволить выполнить часть задачи приложению Б. Этот цикл выполняется по системе грузовой диспетчеризации (round robin) между всеми задачами, которые выполняются на данный момент.

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

Все старые приложения, выполняющиеся под управлением Windows’98 – 16-разрядные приложения, перенесенные с Windows 3.х – должны выполняться в режиме кооперативной многозадачности. Однако Windows’98 сводит к минимуму эффект, который производят эти приложения, выполняя их в едином адресном пространстве. Все 16-разрядные по-прежнему должны выполняться в режиме кооперативной многозадачности, однако ресурсы разделяются только между такими приложениями, они никак не влияют на 32-разрядные приложения, выполняющиеся одновременно с ними.

Разрабатывая Windows NT, компания Microsoft желала внести в операционную систему нечто лучше, чем кооперативная многозадачность, решением этого вопроса стала приоритетная многозадачность. Операционная система Windows’98 поддерживает приоритетную многозадачность для любого 32 – разрядного приложения. Количество времени, выделяемого для каждой задачи, оценивается операционной системой по некоторым критериям. В результате каждое приложение получит долго процессорного времени в соответствие с его приоритетом. Windows’98 производит мониторинг каждого приложения и прерывает их выполнение, когда заканчивается отведенное им время.

Имеется более существенное различие в образе действия системе в режиме приоритетной многозадачности. В Windows 3.x песочные часы на экране означали, что система занята. Пока песочные часы не исчезнут, ничего нельзя было сделать. Песочные часы Windows’98 означает, что выполняется текущая задача. Всегда можно запустить другую задачу или перейти уже к выполняющейся задаче. Пользователю в режиме приоритетной многозадачность не надо жить, пока система разбирается с приложениями.

Кооперативная многозадачность имеет серьезные недостатки: Windows теряет управление, когда оно передается приложению, тогда способа прекратить выполнение этого приложения, если компьютер зависнет. Windows’98 поддерживает постоянный контроль над системой. Если приложение зависает, его выполнение можно закончить, а не перегружать систему. Ctrl+Alt+Del выводит на экран список приложений. Прекратить выполнения приложения можно сделать в диалоговом окне.

Microsoft использует кооперативную многозадачность, так как Dos и Windows 3.x не может выполняться в режиме приоритетной многозадачности, MS–DOS не имеет точек повторного входа, ей необходимо выполнить одну задачу, прежде чем приступить к следующей.

Приоритетная многозадачность также нуждается в некоторой системе приоритетов для того, чтобы задачи большей важности получали большую долю процессорного времени. Система приоритетов, которую использует Windows’98, обеспечивает динамический способ изменение приоритета задачи. Если выполняется высокоприоритетная задача, то WINDOWS понижает ее приоритет. Если низкоприоритетная задача игнорируется, Windows’98 увеличивает ее приоритет.

Даже если бы имелась лучшая в мире система динамического распределения приоритетов и каждая часть операционная система работала так как надо, могут возникнуть ситуации, когда задача должна выполнить последовательность действий без вмешательства. Например, приложению необходимо убедиться в том, что транзакция в базе данных была записана на жесткий диск, прежде чем передавать управление операционной системе. Программисты называют часть кода, который выполняет такую задачу, критическим разделом. Обычно критические разделы появляются в связи с выполнением системных задач, таких как выделение памяти. Но они также могут появиться в пользовательских задачах, такие как запись информации в файл.

Системе, реализующей кооперативную многозадачность, не нужно беспокоить о критических разделах, так как задача сама решает, когда отдать операционной системе. Приоритетная многозадачность нуждается в методе, при помощи которого задача сообщает о том, что ей необходимо завершить выполнение критического раздела. В Windows’98 задачи сообщает операционной системе о том, что ей необходимо закончить выполнение критического раздела, при помощи семафора. Если приложение запрашивает разделение на выполнение задачи, которая не пересекается с какой либо частью критического раздела, то Windows’98 разрешает ее выполнение. Критические разделы гарантирует то, что задача и ее среда не будет затрагиваться до тех пор, пока задача не закончит свою работу.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Назначение слоя Windows API

2. Назначение Диспетчера виртуальных машин

3. Какие три типа драйверов поддерживает Windows’98

4. Почему Виртуальная машина в MS DOS выделена как отдельный компонент

5. Перечислить три основных компонента операционной системы Windows’98

6. В каком режиме запускается Windows’98: как 16-разрядное или 32 –разрядное приложение

7. Назначение Библиотек динамической компоновки, какое расширение они имеют

8. Два типа многозадачности, которые поддерживает Windows’98

9. Все старые приложения, выполняющиеся под управлением Windows’98 – 16-разрядные приложения, перенесенные с Windows 3.х – должны выполняться в режиме кооперативной или приоритетной многозадачности.

10. Операционная система Windows’98 поддерживает для любого 32 – разрядного приложения ………… (кооперативную или приоритетную) многозадачность

4.3.6Windows ХР

Новейшая версия операционной системы семейства Windows действительно является качественно новым продуктом. Windows ХР Professional создана на основе полностью
отлаженных технологий, использованных в появившейся много лет назад Windows NT.
Сегодня мы имеем многозадачную симметричную многопроцессорную систему, которая
повысит производительность вашей работы на компьютере. С выходом Windows ХР вы
получите не только оживленно смотрящийся рабочий стол, но и поддержку для многих
новых устройств, и совместимость базовых кодов Windows 9х и Windows NT/2000. В результате получаем операционную систему, которая позволит запускать дома те же про-
граммы, что и на работе. В дополнение, такие новые возможности, как Восстановление
системы (System Restore) и Откат установки драйверов устройств (Device Driver
Rollback) помогут избежать многих проблем, с которыми сталкивались ранее при установке нового оборудования или программных продуктов.

Эту главу мы начнем с рассмотрения основ Windows ХР - средств, с помощью которых обеспечивается работа с большим объемом памяти и возможность одновременного запуска нескольких приложений. Данные возможности являются ключевыми элементами самых современных операционных систем, управляющих суперкомпьютерами. Теперь вы можете пользоваться этими возможностями на своих домашних или рабочих компьютерах.

Ключевые компоненты Windows ХР, которые мы будем исследовать в этой главе:

• Защищенная память - Windows ХР использует возможность Центрального процессора (CPU) выполнять коды в привилегированном режиме или в пользовательском режиме. Большая часть функциональных возможностей операционной системы реализуется в привилегированном режиме, и это та часть, которая отвечает за контроль доступа к физической памяти, установленной на компьютере. Пользовательские приложения должны делать запрос к операционной системе для получения доступа к виртуальной памяти. Так как ядро защищает физическую память от приложений, то зависание или крах системы становится
маловероятным.

• Виртуальная память - Windows ХР способна поддерживать до 4 гигабайт (Гб)
виртуальной памяти, она использует специальный файл, в котором содержатся
части памяти, не нужные в данный момент приложению либо операционной системе. Этот большой адресный сегмент памяти не делится между запущенными
приложениями. Каждому приложению даются свои собственные 4 Гб виртуальной памяти, что позволяет облегчить работу некоторых сложных приложений,
работающих с графикой и звуком, и сделать вашу работу за компьютером намного
приятнее. Любители игр обнаружат, что Windows ХР будет работать также хорошо или даже лучше, чем предыдущие версии Windows 9х.

• Многозадачность - это способность работать с несколькими приложениями одновременно. Работая в офисе, приходится запускать сразу несколько приложений,
переключаться между активными и фоновыми приложениями, и переносить данные между ними. Windows ХР выполнит эти задачи легче.

• Работа с несколькими процессорами - Windows ХР может запускать приложения, используя несколько процессоров на одном компьютере. Благодаря этой возможности время отклика приложений может быть уменьшено. Несмотря на то,
что раньше мощные графические станции обычно работали на Unix или на собственных операционных системах, вы поймете, что Windows ХР способна справиться с подобными заданиями, имея при этом значительно меньшую стоимость.

• Hardware Abstraction Layer (HAL) - это уровень кода, стоящий между операционной системой и устройствами подключенными, к компьютеру, такими как сетевая карта, дисковый накопитель, и позволяющий операционной системе контролировать эти устройства. Это позволяет избежать зависания системы из-занестабильно работающих устройств.

• Технология DirectX - последняя версия DirectX преодолевает ограничения, наложенные HAL, так что игры и другие мультимедийные приложения могут на-
много быстрее взаимодействовать с необходимыми устройствами.

В этой главе мы рассмотрим архитектуру операционной системы, используемую
Windows ХР для обеспечения работы перечисленных возможностей.

Наши рекомендации