- •5. Процессы и потоки
- •Мультипрограммирование
- •Мультипрограммирование в системах пакетной обработки
- •Мультипрограммирование в системах разделения времени
- •Мультипрограммирование в системах реального времени
- •Мультипроцессорная обработка
- •Планирование процессов и потоков
- •Понятие «процесс» и «поток»
- •Создание процессов и потоков
- •Планирование и диспетчеризация потоков
- •Состояния потока
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Планирование с абсолютными и относительными приоритетами
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Моменты перепланировки
- •6. Мультипрограммирование на основе прерываний Назначение и типы прерываний
- •Механизм прерываний
- •Программные прерывания
- •Диспетчеризация и приоритезация прерываний в ос
- •Функционирование централизованного диспетчера прерываний на примере Windows nt
- •Системные вызовы
- •7. Процессы в ос unix Введение
- •Компоненты процесса
- •Атрибуты процесса Идентификатор процесса (pid)
- •Идентификатор родительского процесса (ррid)
- •Идентификатор пользователя (uid) и эффективный идентификатор пользователя (euid)
- •Идентификатор группы (gid) и эффективный идентификатор группы (egid)
- •Приоритет и значение nice
- •Жизненный цикл процесса
- •Сигналы
- •Дамп памяти
- •Список процессов: ps
- •Версия bsd
- •Версия System V
- •Установка приоритета процесса при запуске: nice
- •Изменение приоритета запущенного процесса: renice
- •Отправка сигнала: kill
- •Отправка сигналов командам: killall
- •Прекращение процесса
- •Временная приостановка процесса
- •Список заданий: jobs
- •Фоновый режим работы
- •Перевод задания на передний план: fg
- •Отправка задания на задний план: bg
- •Список литературы
- •ОГлавление
Планирование в системах реального времени
В системах реального времени, в которых главным критерием эффективности является обеспечение временных характеристик вычислительного процесса, планирование имеет особое значение. Любая система реального времени должна реагировать на сигналы управляемого объекта в течение заданных временных ограничений. Необходимость тщательного планирования работ облегчается тем, что в системах реального времени весь набор выполняемых задач известен заранее. Кроме того, часто в системе имеется информация о временах выполнения задач, моментах активизации, предельных допустимых сроках ожидания ответа и т. д. Эти данные могут быть использованы планировщиком для создания статического расписания или для построения адекватного алгоритма динамического планирования.
При разработке алгоритмов планирования для систем реального времени необходимо учитывать, какие последствия в этих системах возникают при несоблюдении временных ограничений. Если эти последствия катастрофичны, как, например, для системы управления полетами или атомной электростанцией, то операционная система реального времени, на основе которой строится управление объектом, называется жесткой (hard). Если же последствия нарушения временных ограничений не столь серьезны, то есть сравнимы с той пользой, которую приносит система управления объектом, то система является мягкой (soft) системой реального времени. Примером мягкой системы реального времени является система резервирования билетов. Если из-за временных нарушений оператору не удается зарезервировать билет, это не очень страшно - можно просто послать запрос на резервирование заново.
В жестких системах реального времени время завершения выполнения каждой из критических задач должно быть гарантировано для всех возможных сценариев работы системы. Такие гарантии могут быть даны либо в результате исчерпывающего тестирования всех возможных сценариев поведения управляемого объекта и управляющих программ, либо в результате построения статического расписания, либо в результате выбора математически обоснованного динамического алгоритма планирования. При построении расписания надо иметь в виду, что для некоторых наборов задач в принципе невозможно найти расписания, при котором бы удовлетворялись заданные временные характеристики. С целью определения возможности существования расписания могут быть использованы различные критерии. Например, в качестве простейшего критерия может служить условие, что разность между предельным сроком выполнения задачи (после появления запроса на ее выполнение) и временем ее вычисления (при условии непрерывного выполнения) всегда должна быть положительной. Очевидно, что такой критерий является необходимым, но недостаточным. Точные критерии, гарантирующие наличие расписания, являются очень сложными в вычислительном отношении.
В мягких системах реального времени предполагается, что заданные временные ограничения могут иногда нарушаться, поэтому здесь обычно применяются менее затратные способы планирования.
Примечание. При рассмотрении в качестве примеров подсистем планирования потоков/процессов в операционных системах Windows NT, OS/2 и UNIX System 5 Rе1еаве 4 было отмечено, что во всех этих системах имеется приоритетный класс реального времени. Для потоков/процессов, относящихся к этому классу, каждая из вышеназванных систем не гарантирует выполнение заданных временных ограничений, а лишь обеспечивает предпочтение в скорости обслуживания. Следовательно, эти ОС могут быть основой для построения мягких систем реального времени, но непригодны для жестких систем реального времени.
В зависимости от характера возникновения запросов на выполнение задач полезно разделять их на два типа: периодические и спорадические. Начиная с момента первоначального запроса все будущие моменты запроса периодической задачи можно определить заранее путем прибавления к моменту начального запроса величины, кратной известному периоду. Времена запросов на выполнение спорадических задач заранее не известны.
Предположим, что имеется периодический набор задач (Тi) с периодами pi, предельными сроками di и требованиями ко времени выполнения сi. Для проверки возможности существования расписания достаточно проанализировать расписание на периоде времени, равном, по крайней мере, наименьшему общему множителю периодов этих задач. Необходимым критерием существования расписания для набора периодических задач является следующее достаточно очевидное утверждение: сумма коэффициентов использования I= сi/рi должна быть меньше или равна k, где k - количество доступных процессоров, то есть
=ci/pi <=k.
При выборе алгоритма планирования следует учитывать данные о возможной зависимости задач. Эта зависимость может выступать, например, в виде ограничений на последовательность выполнения задач или их синхронизации, вызванной взаимными исключениями (запрете выполнения некоторых задач в течение определенных периодов времени).