Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Обзор инструментов SEO-оптимизатора и методов продвижения" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Декабрь 2004 → | ||||||
1
|
2
|
3
|
4
|
|||
---|---|---|---|---|---|---|
6
|
7
|
8
|
9
|
11
|
12
|
|
13
|
14
|
16
|
17
|
18
|
19
|
|
21
|
22
|
23
|
24
|
25
|
||
27
|
28
|
29
|
30
|
31
|
Статистика
0 за неделю
Создай свою операционную систему! #3
Информационный Канал Subscribe.Ru |
Сетевые операционные системы |
Глава 4. Процессы и потоки |
2004-12-05 |
Продолжение Планирование в системах реального времениВ системах реального времени, в которых главным критерием эффек-тивности является обеспечение временных характеристик вычислительного процесса, планирование имеет особое значение. Любая система реального времени должна реагировать на сигналы управляемого объекта в течение за-данных временных ограничений. Необходимость тщательного планирования работ облегчается тем, что в системах реального времени весь набор выпол-няемых задач известен заранее. Кроме того, часто в системе имеется инфор-мация о временах выполнения задач, моментах активизации, предельных до-пустимых сроках ожидания ответа и т.д. Эти данные могут быть использова-ны планировщиком для создания статического расписания или для построе-ния адекватного алгоритма динамического планирования. При разработке алгоритмов планирования для систем реального вре-мени необходимо учитывать, какие последствия в этих системах возникают при несоблюдении временных ограничений. Если эти последствия катастро-фичны, как, например, для системы управления полетами или атомной элек-тростанцией, то операционная система реального времени, на основе которой строится управление объектом, называется жесткой (hard). Если же послед-ствия нарушения временных ограничений не столь серьезны, то есть сравни-мы с той пользой, которую приносит система управления объектом, то сис-тема является мягкой (soft) системой реального времени. Примером мягкой системы реального времени является система резервирования билетов. Если из-за временных нарушений оператору не удается зарезервировать билет, это не очень страшно - можно просто послать запрос на резервирование заново. В жестких системах реального времени время завершения выполне-ния каждой из критических задач должно быть гарантировано для всех воз-можных сценариев работы системы. Такие гарантии могут быть даны либо в результате исчерпывающего тестирования всех возможных сценариев пове-дения управляемого объекта и управляющих программ, либо в результате построения статического расписания, либо в результате выбора математиче-ски обоснованного динамического алгоритма планирования. При построении расписания надо иметь в виду, что для некоторых наборов задач в принципе невозможно найти расписания, при котором бы удовлетворялись заданные временные характеристики. С целью определения возможности существова-ния расписания могут быть использованы различные критерии. Например, в качестве простейшего критерия может служить условие, что разность между предельным сроком выполнения задачи (после появления запроса на ее вы-полнение) и временем ее вычисления (при условии непрерывного выполне-ния) всегда должна быть положительной. Очевидно, что такой критерий яв-ляется необходимым, но недостаточным. Точные критерии, гарантирующие наличие расписания, являются очень сложными в вычислительном отноше-нии. В мягких системах реального времени предполагается, что заданные временные ограничения могут иногда нарушаться, поэтому здесь обычно применяются менее затратные способы планирования. ПРИМЕЧАНИЕ. При рассмотрении в качестве примеров подсистем планирования пото-ков/процессов в операционных системах Windows NT, OS/2 и UNIX System V Release 4 было отмечено, что во всех этих системах имеется приоритетный класс реального време-ни. Для потоков/процессов, относящихся к этому классу, каждая из вышеназванных сис-тем не гарантирует выполнение заданных временных ограничений, а лишь обеспечивает предпочтение в скорости обслуживания. Следовательно, эти ОС могут быть основой для построения мягких систем реального времени, но непригодны для жестких систем реаль-ного времени. В зависимости от характера возникновения запросов на выполнение задач полезно разделять их на два типа: периодические и спорадические. На-чиная с момента первоначального запроса все будущие моменты запроса пе-риодической задачи можно определить заранее путем прибавления к момен-ту начального запроса величины, кратной известному периоду. Времена за-просов на выполнение спорадических задач заранее не известны. Предположим, что имеется периодический набор задач {Ti} с перио-дами pi, предельными сроками di и требованиями ко времени выполнения сi. Для проверки возможности существования расписания достаточно проанали-зировать расписание на периоде времени, равном по крайней мере наимень-шему общему множителю периодов этих задач. Необходимым критерием существования расписания для набора периодических задач является сле-дующее достаточно очевидное утверждение: сумма коэффициентов исполь-зования mi = ci/pi должна быть меньше или равна k, где k - количество дос-тупных процессоров, то есть: M=S сi/рi <= k При выборе алгоритма планирования следует учитывать данные о воз-можной зависимости задач. Эта зависимость может выступать, например, в виде ограничений на последовательность выполнения задач или их синхро-низации, вызванной взаимными исключениями (запрете выполнения некото-рых задач в течение определенных периодов времени). С практической точки зрения алгоритмы планирования зависимых за-дач более важны, чем алгоритмы планирования независимых задач. При на-личии дешевых микроконтроллеров нет смысла организовывать мультипро-граммное выполнение большого количества независимых задач на одном компьютере, так как при этом значительно возрастает сложность программ-ного обеспечения. Обычно одновременно выполняющиеся задачи должны обмениваться информацией и получать доступ к общим данным для дости-жения общей цели системы, то есть являются зависимыми задачами. Поэто-му существование некоторого предпочтения последовательности выполнения задач или взаимного исключения - это скорее норма для систем управления реального времени, чем исключение. Проблема планирования зависимых задач очень сложна, нахождение ее оптимального решения требует больших вычислительных ресурсов, срав-нимых с теми, которые требуются для собственно выполнения задач управ-ления. Решение этой проблемы возможно за счет следующих мер: Разделение проблемы планирования на две части, чтобы одна часть вы-полнялась заранее, перед запуском системы, а вторая, более простая часть - во время работы системы. Предварительный анализ набора задач с вза-имными исключениями может состоять, например, в выявлении так назы-ваемых запрещенных областей времени, в течение которых нельзя назна-чать выполнение задач, содержащих критические секции. Введение ограничивающих предположений о поведении набора задач. Алгоритм основан на следующих предположениях: Суть алгоритма состоит в том, что всем задачам назначаются статиче-ские приоритеты в соответствии с величиной их периодов выполнения. Зада-ча с самым коротким периодом получает наивысший приоритет, а задача с наибольшим периодом выполнения получает наименьший приоритет. При соблюдении всех ограничений этот алгоритм гарантирует выполнение вре-менных ограничений для всех задач во всех ситуациях. Если же периоды повторения задач кратны периоду выполнения са-мой короткой задачи, то требование к максимальному коэффициенту загруз-ки процессора смягчается - он может доходить до 1. Существуют также алгоритмы с динамическим изменением приорите-тов, которые назначаются в соответствии с такими текущими параметрами задачи как, например, конечный срок выполнения (deadline). При необходи-мости назначения некоторой задачи на выполнение выбирается та, у которой текущее значение разницы между конечным сроком выполнения и временем, требуемым для ее непрерывного выполнения, является наименьшим. Моменты перепланировкиДля реализации алгоритма планирования ОС должна получать управ-ление всякий раз, когда в системе происходит событие, требующее перерас-пределения процессорного времени. К таким событиям могут быть отнесены следующие: Прерывание от таймера, сигнализирующее, что время, отведенное актив-ной задаче на выполнение, закончилось. Планировщик переводит задачу в состояние готовности и выполняет перепланирование.
При возникновении каждого из этих событий планировщик выполняет просмотр очередей и решает вопрос о том, какая задача будет выполняться следующей. Помимо указанных существует и ряд других событий (часто свя-занных с системными вызовами), требующих перепланировки. Например, за-просы приложений и пользователей на создание новой задачи или повыше-ние приоритета уже существующей задачи создают новую ситуацию, которая требует пересмотра очередей и, возможно, переключения процессора. На рис. 4.11 показан фрагмент временной диаграммы работы плани-ровщика в системе, где одновременно выполняются четыре потока. В данном случае неважно, по какому правилу выбираются потоки на выполнение и ка-ким образом изменяются их приоритеты. Существенное значение имеют лишь события, вызывающие активизацию планировщика. Первые четыре цикла работы планировщика, приведенные на рисунке, были инициированы прерываниями от таймера по истечении квантов време-ни (эти события обозначены на рисунке как Т). Следующая передача управления планировщику была осуществлена в результате выполнения потоком 3 системного запроса на ввод-вывод (собы-тие I/O). Планировщик перевел этот поток в состояние ожидания, а затем пе-реключил процессор на поток 2. Поток 2 полностью использовал свой квант, произошло прерывание от таймера, и планировщик активизировал поток 1. При выполнении потока 1 произошло событие R - системный вызов, в результате которого освободился некоторый ресурс (например, был закрыт файл). Это событие вызвало перепланировку потоков. Планировщик про-смотрел очередь ожидающих потоков и обнаружил, что поток 4 ждет осво-бождения данного ресурса. Этот поток был переведен в состояние готовно-сти, но поскольку приоритет выполняющегося в данный момент потока 1 выше приоритета потока 4, планировщик вернул процессор потоку 1. В следующем цикле работы планировщик активизировал поток 4, а затем, после истечения кванта и сигнала от таймера, управление получил по-ток 2. Этот поток не успел использовать свой квант, так как был снят с вы-полнения в результате возникшей ошибки (событие ER). Далее планировщик предоставлял процессорное время потокам 1,4 и снова 1. Во время выполнения потока 1 произошло прерывание S от внешне-го устройства, сигнализирующее о том, что операция передачи данных за-вершена. Это событие активизировало работу планировщика, в результате которой поток 3, ожидавший завершения ввода-вывода, вытеснил поток 1, так как имел в этот момент более высокий приоритет. Последний показанный на диаграмме период выполнения потока 1 прерывался несколько раз. Вначале это было прерывание от внешнего уст-ройства (S), затем программное прерывание (R), вызвавшее освобождение ресурса, и, наконец, прерывание от таймера (Т). Каждое из этих трех преры-ваний вызвало перепланировку потоков. В двух первых случаях планиров-щик оставил выполняться поток 1, так как в очереди не оказалось более при-оритетных потоков, а квант времени, выделенный потоку 1, еще не был ис-черпан. Переключение потоков было выполнено только по прерыванию от таймера. В системах реального времени для отработки статического расписа-ния планировщик активизируется по прерываниям от таймера. Эти прерыва-ния пронизывают всю временную ось, возникая через короткие постоянные интервалы времени. После каждого прерывания планировщик просматривает расписание и проверяет, не пора ли переключить задачи. Кроме прерываний от таймера в системах реального времени перепланирование задач может происходить по прерываниям от внешних устройств - различного вида дат-чиков и исполнительных механизмов. Продолжение следует...
|
Copyright (C) 2004 UzhOS-Team |
Ведущий рассылки Igene Smith (winexp[@]yandex.ru) |
Designed by Vladimir Tsarkov (bvbn[@]lipetsk.ru) |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.othos.osmaker |
Отписаться |
В избранное | ||