Составители:
Рубрика:
Понятия абсолютных и относительных приоритетов связаны с их
влиянием на момент переключения с одной задачи на другую: в системах
с абсолютными приоритетами такое переключение выполняется, как
только в очереди готовых к исполнению задач появляется задача с более
высоким приоритетом, чем выполняемая. В системах с относительными
приоритетами появление более приоритетной задачи не приводит к
немедленному переключению – момент переключения задач будет опре-
деляться по каким-либо иным критериям.
Выделяют понятия вытесняющей и невытесняющей многозадачно-
сти: в случае невытесняющей многозадачности решение о переключении
принимает выполняемая в данный момент задача, а в случае вытесняю-
щей многозадачности такое решение принимается операционной систе-
мой (или иным арбитром), независимо от работы активной в данный мо-
мент задачи.
На приведенном графе состояний задачи (см. рис. 6.6) прямая линия
от состояния «выполнение» к состоянию «готовность» нарисована пунк-
тиром, чтобы выделить отличие невытесняющей многозадачности от вы-
тесняющей. В случае невытесняющей многозадачности выполняющаяся
задача может либо завершиться, либо перейти в состояние «ожидание».
И тот, и другой переходы определены логикой работы самой задачи. На
Основы многозадачности
189
зация многозадачности на одном процессоре в противовес использованию
многих процессоров.
Важно подчеркнуть, что мультипрограммирование предполагает уп-
равление одновременно выполняющимися приложениями пользователя,
а не вообще всяким кодом. Любая реальная вычислительная система
должна предусматривать специальные меры для своевременного обслужи-
вания поступающих прерываний, исключений и остановок. Такое обслу-
живание должно выполняться независимо от работы приложений пользо-
вателя и в большинстве случаев имеет абсолютный приоритет над прило-
жениями, так как задержка в обработке подобных событий чревата воз-
никновением неустранимых сбоев и потерь данных. В результате операци-
онные системы предоставляют некоторый механизм, обслуживающий
возникающие прерывания и только в промежутках между прерываниями
– приложения пользователя. Более того, поскольку аппаратные прерыва-
ния происходят в большинстве случаев асинхронно по отношению к при-
ложениям и по отношению к другим прерываниям, то получается так, что
система должна содержать два планировщика или диспетчера – один для
прерываний, другой для приложений. Работа диспетчера прерываний
здесь не рассматривается, поскольку относится сугубо к ядру операцион-
ной системы и практически не затрагивает работу приложений.
В мультипрограммировании ключевым местом является способ состав-
ления расписания, по которому осуществляется переключение между задача-
ми (планирование), а также механизм, осуществляющий эти переключения.
По времени планирования можно выделить статическое и динамиче-
ское составление расписания (см. рис. 6.5). При статическом планирова-
нии расписание составляется заранее, до запуска приложений, и операци-
онная система в дальнейшем просто выполняет составленное расписание.
В случае динамического планирования порядок запуска задач и передачи
управления задачам определяется непосредственно во время исполнения.
Статическое расписание свойственно системам реального времени, когда
необходимо гарантировать заданное время и сроки выполнения необходи-
мых операций. В универсальных операционных системах статическое рас-
писание практически не применяется.
Динамическое расписание предполагает составление плана выпол-
нения задач непосредственно во время их выполнения. Выделяют дина-
мическое планирование с использованием квантов времени – когда каж-
дый выполняемой задаче назначают определенной продолжительности
квант времени (фиксированной или переменной продолжительности) и
планирование с использованием приоритетов – когда задачам назначают
специфичные приоритеты и переключение задач осуществляют с учетом
этих приоритетов. В реальных операционных системах обычно имеет ме-
сто какая-либо комбинация этих подходов.
188
CIL и системное программирование в Microsoft .NET
Планирование
Статическое
Динамическое
С использованием
приоритетов
С относительными
приоритетами
С использованием квантов
(постоянных или динамических)
С абсолютными приоритетами
Вытесняющая многозадачность
Невытесняющая многозадачность
Рис. 6.5. Планирование задач
188 CIL и системное программирование в Microsoft .NET Основы многозадачности 189 зация многозадачности на одном процессоре в противовес использованию многих процессоров. Планирование Важно подчеркнуть, что мультипрограммирование предполагает уп- равление одновременно выполняющимися приложениями пользователя, а не вообще всяким кодом. Любая реальная вычислительная система Статическое должна предусматривать специальные меры для своевременного обслужи- вания поступающих прерываний, исключений и остановок. Такое обслу- Динамическое живание должно выполняться независимо от работы приложений пользо- вателя и в большинстве случаев имеет абсолютный приоритет над прило- С использованием квантов жениями, так как задержка в обработке подобных событий чревата воз- (постоянных или динамических) никновением неустранимых сбоев и потерь данных. В результате операци- С использованием онные системы предоставляют некоторый механизм, обслуживающий приоритетов возникающие прерывания и только в промежутках между прерываниями С абсолютными приоритетами – приложения пользователя. Более того, поскольку аппаратные прерыва- ния происходят в большинстве случаев асинхронно по отношению к при- С относительными Вытесняющая многозадачность ложениям и по отношению к другим прерываниям, то получается так, что приоритетами система должна содержать два планировщика или диспетчера – один для прерываний, другой для приложений. Работа диспетчера прерываний Невытесняющая многозадачность здесь не рассматривается, поскольку относится сугубо к ядру операцион- ной системы и практически не затрагивает работу приложений. В мультипрограммировании ключевым местом является способ состав- Рис. 6.5. Планирование задач ления расписания, по которому осуществляется переключение между задача- ми (планирование), а также механизм, осуществляющий эти переключения. Понятия абсолютных и относительных приоритетов связаны с их По времени планирования можно выделить статическое и динамиче- влиянием на момент переключения с одной задачи на другую: в системах ское составление расписания (см. рис. 6.5). При статическом планирова- с абсолютными приоритетами такое переключение выполняется, как нии расписание составляется заранее, до запуска приложений, и операци- только в очереди готовых к исполнению задач появляется задача с более онная система в дальнейшем просто выполняет составленное расписание. высоким приоритетом, чем выполняемая. В системах с относительными В случае динамического планирования порядок запуска задач и передачи приоритетами появление более приоритетной задачи не приводит к управления задачам определяется непосредственно во время исполнения. немедленному переключению – момент переключения задач будет опре- Статическое расписание свойственно системам реального времени, когда деляться по каким-либо иным критериям. необходимо гарантировать заданное время и сроки выполнения необходи- Выделяют понятия вытесняющей и невытесняющей многозадачно- мых операций. В универсальных операционных системах статическое рас- сти: в случае невытесняющей многозадачности решение о переключении писание практически не применяется. принимает выполняемая в данный момент задача, а в случае вытесняю- Динамическое расписание предполагает составление плана выпол- щей многозадачности такое решение принимается операционной систе- нения задач непосредственно во время их выполнения. Выделяют дина- мой (или иным арбитром), независимо от работы активной в данный мо- мическое планирование с использованием квантов времени – когда каж- мент задачи. дый выполняемой задаче назначают определенной продолжительности На приведенном графе состояний задачи (см. рис. 6.6) прямая линия квант времени (фиксированной или переменной продолжительности) и от состояния «выполнение» к состоянию «готовность» нарисована пунк- планирование с использованием приоритетов – когда задачам назначают тиром, чтобы выделить отличие невытесняющей многозадачности от вы- специфичные приоритеты и переключение задач осуществляют с учетом тесняющей. В случае невытесняющей многозадачности выполняющаяся этих приоритетов. В реальных операционных системах обычно имеет ме- задача может либо завершиться, либо перейти в состояние «ожидание». сто какая-либо комбинация этих подходов. И тот, и другой переходы определены логикой работы самой задачи. На
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »