Составители:
Рубрика:
NT, 2000, XP и 2003). В таких приложениях операционная система не пре-
рывает выполнение текущей задачи до вызова ею функций типа
GetMessage или WaitMessage, во время которых Windows осуществляет при
необходимости переключение на другую задачу.
Вытесняющая многозадачность предполагает наличие некоторого
арбитра, принадлежащего обычно операционной системе, который при-
нимает решение о вытеснении текущей выполняемой задачи какой-либо
другой, готовой к выполнению, асинхронно с работой текущей задачи.
В качестве некоторого обобщения можно выделить понятие «момент
перепланирования», когда активируется планировщик задач и принимает
решение о том, какую именно задачу в следующий момент времени надо
начать выполнять. Принципы, по которым назначаются моменты перепла-
нирования, и критерии, по которым осуществляется выбор задачи, опреде-
ляют способ реализации многозадачности и его сильные и слабые стороны.
Рис. 6.7. Моменты перепланирования задач
Так, если моменты перепланирования наступают только вследствие
явного вызова функций приложением, мы имеем дело с невытесняющей
многозадачностью и относительными приоритетами. Если смена приори-
тета вызывает перепланирование – значит, это система с абсолютными
приоритетами и вытесняющей многозадачностью. Если моменты пере-
планирования наступают по исчерпанию временных квантов (возможно
постоянного размера, а возможно и переменного), то система поддержи-
вает вытесняющую многозадачность с квантованием.
Основы многозадачности
191
графе состояний задачи в случае невытесняющей многозадачности пунк-
тирной линии от состояния «выполнение» к состоянию «готовность» не
будет. В случае вытесняющей многозадачности вытеснение осуществляет-
ся по решению системы, а не только по инициативе задачи.
Для невытесняющей многозадачности характерно, что операционная
система передает задаче управление и далее ожидает от нее сигнала, ин-
формирующего о возможности переключения на другую задачу; сама по
себе операционная система выполняемую задачу не прерывает. Именно
поэтому невытесняющая многозадачность рассматривается как многоза-
дачность с относительными приоритетами – пока задача сама не сообщит,
что настал подходящий для переключения момент, система не сможет пе-
редать управление никакой другой, даже высокоприоритетной, задаче.
Невытесняющая многозадачность проста в реализации, особенно на
однопроцессорных машинах, и, кроме того, обеспечивает очень малый
уровень накладных расходов на реализацию плана. Недостатками являют-
ся повышенная сложность разработки приложений и невысокая защи-
щенность системы от некачественных приложений.
Характерный пример невытесняющей многозадачности – 16-ти раз-
рядные Windows (включая собственно 16-ти разрядные версии Windows,
выполнение 16-ти разрядных приложений в Windows-95, 98, ME и выпол-
нение 16-ти разрядных приложений в рамках одной Windows-машины в
190
CIL и системное программирование в Microsoft .NET
Готовность
Ожидание
Выполнение
Запуск
задачи
Задача
выбрана для
выполнения
Задача
вытеснена из
состояния
выполнения
Задача
переходит в
режим
ожидания
Ожидаемое событие произошло и
задача может выполняться
Выполнение задачи в некоторых
случаях может быть возобновлено
немедленно по завершении ожидания
Завершение
задачи
Рис. 6.6. Граф состояний задачи
Задача 4
Задача 3
Задача 2
Задача 1
Повышение приоритета
задачей 2
Перепланирование по исчерпанию кванта
Понижение приоритета
задачей 2
Запуск новой задачи
Задача 5
Начало операции
ввода-вывода
задачей 3
Вызов функции
явно вызывающей
препланирование
dt=квант
190 CIL и системное программирование в Microsoft .NET Основы многозадачности 191 Ожидаемое событие произошло и NT, 2000, XP и 2003). В таких приложениях операционная система не пре- задача может выполняться рывает выполнение текущей задачи до вызова ею функций типа Запуск GetMessage или WaitMessage, во время которых Windows осуществляет при задачи Выполнение задачи в некоторых необходимости переключение на другую задачу. случаях может быть возобновлено Вытесняющая многозадачность предполагает наличие некоторого немедленно по завершении ожидания арбитра, принадлежащего обычно операционной системе, который при- Готовность нимает решение о вытеснении текущей выполняемой задачи какой-либо другой, готовой к выполнению, асинхронно с работой текущей задачи. Задача Задача В качестве некоторого обобщения можно выделить понятие «момент выбрана для вытеснена из Ожидание перепланирования», когда активируется планировщик задач и принимает выполнения состояния решение о том, какую именно задачу в следующий момент времени надо выполнения начать выполнять. Принципы, по которым назначаются моменты перепла- Выполнение Задача нирования, и критерии, по которым осуществляется выбор задачи, опреде- переходит в ляют способ реализации многозадачности и его сильные и слабые стороны. Завершение режим задачи Понижение приоритета Запуск новой задачи ожидания задачей 2 Вызов функции Начало операции Повышение приоритета явно вызывающей ввода-вывода задачей 2 препланирование задачей 3 Рис. 6.6. Граф состояний задачи Задача 5 графе состояний задачи в случае невытесняющей многозадачности пунк- Задача 4 тирной линии от состояния «выполнение» к состоянию «готовность» не будет. В случае вытесняющей многозадачности вытеснение осуществляет- Задача 3 ся по решению системы, а не только по инициативе задачи. Для невытесняющей многозадачности характерно, что операционная Задача 2 система передает задаче управление и далее ожидает от нее сигнала, ин- формирующего о возможности переключения на другую задачу; сама по Задача 1 себе операционная система выполняемую задачу не прерывает. Именно поэтому невытесняющая многозадачность рассматривается как многоза- dt=квант дачность с относительными приоритетами – пока задача сама не сообщит, Перепланирование по исчерпанию кванта что настал подходящий для переключения момент, система не сможет пе- редать управление никакой другой, даже высокоприоритетной, задаче. Рис. 6.7. Моменты перепланирования задач Невытесняющая многозадачность проста в реализации, особенно на однопроцессорных машинах, и, кроме того, обеспечивает очень малый Так, если моменты перепланирования наступают только вследствие уровень накладных расходов на реализацию плана. Недостатками являют- явного вызова функций приложением, мы имеем дело с невытесняющей ся повышенная сложность разработки приложений и невысокая защи- многозадачностью и относительными приоритетами. Если смена приори- щенность системы от некачественных приложений. тета вызывает перепланирование – значит, это система с абсолютными Характерный пример невытесняющей многозадачности – 16-ти раз- приоритетами и вытесняющей многозадачностью. Если моменты пере- рядные Windows (включая собственно 16-ти разрядные версии Windows, планирования наступают по исчерпанию временных квантов (возможно выполнение 16-ти разрядных приложений в Windows-95, 98, ME и выпол- постоянного размера, а возможно и переменного), то система поддержи- нение 16-ти разрядных приложений в рамках одной Windows-машины в вает вытесняющую многозадачность с квантованием.
Страницы
- « первая
- ‹ предыдущая
- …
- 100
- 101
- 102
- 103
- 104
- …
- следующая ›
- последняя »