Common Intermediate Language и системное программирование в Microsoft.Net. Макаров А.В - 101 стр.

UptoLike

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


зация многозадачности на одном процессоре в противовес использованию
многих процессоров.                                                              Планирование
     Важно подчеркнуть, что мультипрограммирование предполагает уп-
равление одновременно выполняющимися приложениями пользователя,
а не вообще всяким кодом. Любая реальная вычислительная система                             Статическое
должна предусматривать специальные меры для своевременного обслужи-
вания поступающих прерываний, исключений и остановок. Такое обслу-
                                                                                     Динамическое
живание должно выполняться независимо от работы приложений пользо-
вателя и в большинстве случаев имеет абсолютный приоритет над прило-                                                    С использованием квантов
жениями, так как задержка в обработке подобных событий чревата воз-                                                  (постоянных или динамических)
никновением неустранимых сбоев и потерь данных. В результате операци-                      С использованием
онные системы предоставляют некоторый механизм, обслуживающий                                 приоритетов
возникающие прерывания и только в промежутках между прерываниями
                                                                                                                      С абсолютными приоритетами
– приложения пользователя. Более того, поскольку аппаратные прерыва-
ния происходят в большинстве случаев асинхронно по отношению к при-                        С относительными         Вытесняющая многозадачность
ложениям и по отношению к другим прерываниям, то получается так, что                         приоритетами
система должна содержать два планировщика или диспетчера – один для
прерываний, другой для приложений. Работа диспетчера прерываний                     Невытесняющая многозадачность
здесь не рассматривается, поскольку относится сугубо к ядру операцион-
ной системы и практически не затрагивает работу приложений.
     В мультипрограммировании ключевым местом является способ состав-             Рис. 6.5. Планирование задач
ления расписания, по которому осуществляется переключение между задача-
ми (планирование), а также механизм, осуществляющий эти переключения.               Понятия абсолютных и относительных приоритетов связаны с их
     По времени планирования можно выделить статическое и динамиче-            влиянием на момент переключения с одной задачи на другую: в системах
ское составление расписания (см. рис. 6.5). При статическом планирова-         с абсолютными приоритетами такое переключение выполняется, как
нии расписание составляется заранее, до запуска приложений, и операци-         только в очереди готовых к исполнению задач появляется задача с более
онная система в дальнейшем просто выполняет составленное расписание.           высоким приоритетом, чем выполняемая. В системах с относительными
В случае динамического планирования порядок запуска задач и передачи           приоритетами появление более приоритетной задачи не приводит к
управления задачам определяется непосредственно во время исполнения.           немедленному переключению – момент переключения задач будет опре-
Статическое расписание свойственно системам реального времени, когда           деляться по каким-либо иным критериям.
необходимо гарантировать заданное время и сроки выполнения необходи-                Выделяют понятия вытесняющей и невытесняющей многозадачно-
мых операций. В универсальных операционных системах статическое рас-           сти: в случае невытесняющей многозадачности решение о переключении
писание практически не применяется.                                            принимает выполняемая в данный момент задача, а в случае вытесняю-
     Динамическое расписание предполагает составление плана выпол-             щей многозадачности такое решение принимается операционной систе-
нения задач непосредственно во время их выполнения. Выделяют дина-             мой (или иным арбитром), независимо от работы активной в данный мо-
мическое планирование с использованием квантов времени – когда каж-            мент задачи.
дый выполняемой задаче назначают определенной продолжительности                     На приведенном графе состояний задачи (см. рис. 6.6) прямая линия
квант времени (фиксированной или переменной продолжительности) и               от состояния «выполнение» к состоянию «готовность» нарисована пунк-
планирование с использованием приоритетов – когда задачам назначают            тиром, чтобы выделить отличие невытесняющей многозадачности от вы-
специфичные приоритеты и переключение задач осуществляют с учетом              тесняющей. В случае невытесняющей многозадачности выполняющаяся
этих приоритетов. В реальных операционных системах обычно имеет ме-            задача может либо завершиться, либо перейти в состояние «ожидание».
сто какая-либо комбинация этих подходов.                                       И тот, и другой переходы определены логикой работы самой задачи. На