Составители:
Рубрика:
ное распределение процессорного времени и будут обрабатываться плани-
ровщиком с учетом их «особого статуса»; однако при этом нельзя гаранти-
ровать строгого выполнения временных ограничений. Более того, в силу
используемых механизмов управления памятью, нельзя точно предсказать
время, необходимое для выполнения той или иной операции. В любой мо-
мент времени при самом невинном обращении к какой-либо переменной
или функции может потребоваться обработка ошибок доступа, подкачка
выгруженных страниц, освобождение памяти и т.д. – то есть действия,
время завершения которых предсказать крайне трудно. Фактически мож-
но давать лишь вероятностные прогнозы по времени выполнения той или
иной операции. До определенных рамок Windows можно применять в мяг-
ких системах реального времени – с достаточно свободными ограничени-
ями, но даже незначительная вероятность превышения временных огра-
ничений иногда просто недопустима.
6.1.1.3. Базовая терминология
В операционных системах сложилось несколько подходов к реализа-
ции многозадачности, и, соответственно, принятая в разных операцион-
ных системах терминология несколько отличается. Так, обычно разделяют
понятия задачи, процесса и потока. При этом понятие задачи является в
большей степени историческим, либо очень специфичным. Это понятие
сформировалось, когда единицей выделения процессорного времени бы-
ла сама задача; планировщик же мог только переключать задачи. В совре-
менных системах большее распространение получил подход, в котором в
рамках одной «задачи» может быть выделено несколько одновременно вы-
полняемых ветвей кода, соответственно термин «задача» заместился тер-
минами «процесс» и «поток».
Процесс является объектом планирования адресного пространства и
некоторых ресурсов, выделенных задаче. Но при этом процесс не являет-
ся потребителем процессорного времени и не подлежит планированию.
Поток является объектом планирования процессорного времени.
Дополнительно к этому с потоком ассоциируют некоторые другие свойст-
ва, например, пользователя, – это позволяет потокам даже одного процес-
са действовать от имени разных пользователей (воплощение) и использо-
вать механизмы ограничения доступа к ресурсам операционной системы.
Например, сервер, предоставляющий доступ к каким-либо файлам, может
создать поток, обслуживающий конкретного клиента, и воплотить его с
правами доступа, назначенными этому клиенту. Однако в данный момент
для нас важно, что управление процессорным временем осуществляется
применительно к потокам, а управление адресным пространством – при-
менительно к процессам; каждый процесс содержит, как минимум, один
поток.
Основы многозадачности
193
Большинство современных операционных систем используют ком-
бинированные планировщики, одновременно применяющие квантование
с переменной продолжительностью кванта и абсолютные или относитель-
ные приоритеты (см. рис. 6.7).
Выбор задачи, которая начнет выполняться вследствие срабатывания
планировщика, также определяется многими факторами. Среди важней-
ших – приоритет готовых к исполнению задач. Однако, помимо этого, час-
то принимают во внимание текущее и предыдущее состояния задачи. Такой
подход позволяет реализовать достаточно сложный и тщательно сбаланси-
рованный планировщик задач. Очень часто применяют такой прием: назна-
ченный задаче приоритет рассматривается в качестве некоторого «базово-
го», а планировщик операционной системы может в определенных рамках
корректировать реальный приоритет в зависимости от истории выполнения
задачи. Типичными причинами коррекции приоритета являются:
• запуск задачи (для возможно скорейшего начала исполнения);
• досрочное освобождение процессора до исчерпания отведенно-
го кванта (велик шанс, что задача и в этот раз так же быстро от-
даст управление);
• частый вызов операций ввода-вывода (при этом задача чаще на-
ходится в ожидании завершения операции, нежели занимает
процессорное время);
• продолжительное ожидание в очереди (приоритет ожидающей
задачи часто постепенно начинают увеличивать);
• и многие другие.
Работа планировщика существенно усложняется в случае SMP ма-
шин, когда необходимо принимать во внимание привязку задач к процес-
сорам (иногда задаче можно назначить конкретный процессор) и то, на
каком процессоре задача выполнялась до того (это позволяет эффектив-
нее использовать кэш-память процессора).
Реализации Windows NT, 2000, XP, 2003+ предусматривают достаточно
развитый и сложный планировщик, учитывающий множество факторов и
корректирующий как назначение и длительность отводимых задаче кван-
тов, так и приоритеты задач. При этом планировщик является настраивае-
мым, и его логика работы несколько отличается в зависимости от настроек
системы (некоторые доступны через панель управления) и от назначения
системы (работа планировщика различна у серверов и рабочих станций).
Важно отметить, что Windows является гибкой системой разделения
времени с вытесняющей многозадачностью и не может рассматриваться в
качестве системы реального времени. Даже те процессы, которые с точки
зрения Windows относятся к классу процессов так называемого «реально-
го времени», на самом деле требованиям, предъявляемым к системам ре-
ального времени, не удовлетворяют. Такие процессы получат приоритет-
192
CIL и системное программирование в Microsoft .NET
192 CIL и системное программирование в Microsoft .NET Основы многозадачности 193 Большинство современных операционных систем используют ком- ное распределение процессорного времени и будут обрабатываться плани- бинированные планировщики, одновременно применяющие квантование ровщиком с учетом их «особого статуса»; однако при этом нельзя гаранти- с переменной продолжительностью кванта и абсолютные или относитель- ровать строгого выполнения временных ограничений. Более того, в силу ные приоритеты (см. рис. 6.7). используемых механизмов управления памятью, нельзя точно предсказать Выбор задачи, которая начнет выполняться вследствие срабатывания время, необходимое для выполнения той или иной операции. В любой мо- планировщика, также определяется многими факторами. Среди важней- мент времени при самом невинном обращении к какой-либо переменной ших – приоритет готовых к исполнению задач. Однако, помимо этого, час- или функции может потребоваться обработка ошибок доступа, подкачка то принимают во внимание текущее и предыдущее состояния задачи. Такой выгруженных страниц, освобождение памяти и т.д. – то есть действия, подход позволяет реализовать достаточно сложный и тщательно сбаланси- время завершения которых предсказать крайне трудно. Фактически мож- рованный планировщик задач. Очень часто применяют такой прием: назна- но давать лишь вероятностные прогнозы по времени выполнения той или ченный задаче приоритет рассматривается в качестве некоторого «базово- иной операции. До определенных рамок Windows можно применять в мяг- го», а планировщик операционной системы может в определенных рамках ких системах реального времени – с достаточно свободными ограничени- корректировать реальный приоритет в зависимости от истории выполнения ями, но даже незначительная вероятность превышения временных огра- задачи. Типичными причинами коррекции приоритета являются: ничений иногда просто недопустима. • запуск задачи (для возможно скорейшего начала исполнения); • досрочное освобождение процессора до исчерпания отведенно- 6.1.1.3. Базовая терминология го кванта (велик шанс, что задача и в этот раз так же быстро от- В операционных системах сложилось несколько подходов к реализа- даст управление); ции многозадачности, и, соответственно, принятая в разных операцион- • частый вызов операций ввода-вывода (при этом задача чаще на- ных системах терминология несколько отличается. Так, обычно разделяют ходится в ожидании завершения операции, нежели занимает понятия задачи, процесса и потока. При этом понятие задачи является в процессорное время); большей степени историческим, либо очень специфичным. Это понятие • продолжительное ожидание в очереди (приоритет ожидающей сформировалось, когда единицей выделения процессорного времени бы- задачи часто постепенно начинают увеличивать); ла сама задача; планировщик же мог только переключать задачи. В совре- • и многие другие. менных системах большее распространение получил подход, в котором в Работа планировщика существенно усложняется в случае SMP ма- рамках одной «задачи» может быть выделено несколько одновременно вы- шин, когда необходимо принимать во внимание привязку задач к процес- полняемых ветвей кода, соответственно термин «задача» заместился тер- сорам (иногда задаче можно назначить конкретный процессор) и то, на минами «процесс» и «поток». каком процессоре задача выполнялась до того (это позволяет эффектив- Процесс является объектом планирования адресного пространства и нее использовать кэш-память процессора). некоторых ресурсов, выделенных задаче. Но при этом процесс не являет- Реализации Windows NT, 2000, XP, 2003+ предусматривают достаточно ся потребителем процессорного времени и не подлежит планированию. развитый и сложный планировщик, учитывающий множество факторов и Поток является объектом планирования процессорного времени. корректирующий как назначение и длительность отводимых задаче кван- Дополнительно к этому с потоком ассоциируют некоторые другие свойст- тов, так и приоритеты задач. При этом планировщик является настраивае- ва, например, пользователя, – это позволяет потокам даже одного процес- мым, и его логика работы несколько отличается в зависимости от настроек са действовать от имени разных пользователей (воплощение) и использо- системы (некоторые доступны через панель управления) и от назначения вать механизмы ограничения доступа к ресурсам операционной системы. системы (работа планировщика различна у серверов и рабочих станций). Например, сервер, предоставляющий доступ к каким-либо файлам, может Важно отметить, что Windows является гибкой системой разделения создать поток, обслуживающий конкретного клиента, и воплотить его с времени с вытесняющей многозадачностью и не может рассматриваться в правами доступа, назначенными этому клиенту. Однако в данный момент качестве системы реального времени. Даже те процессы, которые с точки для нас важно, что управление процессорным временем осуществляется зрения Windows относятся к классу процессов так называемого «реально- применительно к потокам, а управление адресным пространством – при- го времени», на самом деле требованиям, предъявляемым к системам ре- менительно к процессам; каждый процесс содержит, как минимум, один ального времени, не удовлетворяют. Такие процессы получат приоритет- поток.
Страницы
- « первая
- ‹ предыдущая
- …
- 101
- 102
- 103
- 104
- 105
- …
- следующая ›
- последняя »