Вычислительные системы реального времени
Режим разделения времени
Проблемы организации диалога второго уровня
Первой проблемой при организации диалога второго уровня является предотвращение монополизации ресурсов ВС и, прежде всего, времени центрального процессора одним процессом. Решение этой проблемы довольно простое — это квантование времени занятия процессора одним процессом, т. е. разделение времени между всеми задачами на равные промежутки. Подробнее о реализации режима разделения времени поговорим в следующем разделе.
Вторая проблема связана с распределением между пользовательскими задачами такого ресурса как оперативная память, Варианты ее решения очень разнообразны. Так для ВС с относительно маленькой оперативной памятью в нее загружаются программа и данные только процесса, занимающего в данный момент центральный процессор. Перезапись программ пользователей при переключении на другой процесс (например, после истечения кванта времени Δ) называется «подкачкой памяти». Очевидно, что повысить эффективность работы ВС и сократить время реакции в диалоге с пользователем, можно, если сокращать непроизводительную трату времени на подкачку памяти. В ВС с достаточно большим ОЗУ для этого допускают присутствие в памяти программ и данных сразу нескольких процессов, выполняемых параллельно. При этом количество отводимой под одну задачу памяти может быть фиксировано, а может быть и переменной величиной. В последнем случае число находящихся в ОЗУ программ — величина переменная, зависящая от их длины. До сих пор мы рассматривали ВС коллективного пользования, не имеющие аппарата страничной организации памяти. При наличии такого аппарата данная проблема полностью решается. Теперь не вся программа и данные пользователя, а лишь блоки, становящиеся активными, «подкачиваются» в оперативную память.
Ограничивая время использования центрального процессора квантом времени (например, Δ~0,1 с), мы обеспечиваем быструю реакцию ВС на запрос пользователя к своей собственной программе, т.к. к обработке его система вернется гарантированно за время, не большее Δn, где n - длина очереди задач пользователей.
Выбор размера кванта времени в системах коллективного пользования с разделением времени (или в многозадачных системах) — задача неоднозначная. Ради большей справедливости в обслуживании коротких задач разумно делать квант меньше. Однако с точки зрения эффективности использования ресурсов ВС лучше его увеличивать, сокращая непроизводительные затраты времени на переключение процессов и соответствующую подкачку памяти.
Разнообразны и решения по организации обслуживания нескольких параллельных задач. Используются несколько дисциплин обслуживания, которые можно разделить на две основные группы:
· одноочередные
· многоочередные
Примером одноочередной системы разделения времени является циклическое обслуживание типа карусели (Рисунок 2.3.1). Для предоставления большего приоритета коротким по времени процессам данная дисциплина может быть усовершенствована так, что каждый новый запрос ставится в начало очереди. Если это запрос «короткого» процесса, то его выполнение заметно ускорится за счет экономии времени нахождения в очереди.
Рисунок 2.3.1 – Одноочередная схема обслуживания задач в системе с разделением времени
Рисунок 2.3.2 – Многоочередное обслуживание в системе разделения времени
Многоочередная дисциплина обслуживания также предназначена для обеспечения приоритета «коротким» процессам (Рисунок 2.3.2). Кроме этого, при данной дисциплине экономится время, связанное с переключениями процессов. Если имеется k плюс одна очередь, то приоритет каждой из них убывает с возрастанием номера m. Вновь поступивший запрос ставится в конец очереди номер 0, имеющей высший приоритет. Следующим подлежит обслуживанию запрос из начала очереди m, если очереди с меньшими номерами пусты. Если за выделенный квант времени процесс не заканчивается, то он становится в конец очереди с номером m+1. Запросы из последней очереди k обслуживаются без прерывания на кванты. Выделяемый процессу квант времени возрастает с увеличением номера очереди по правилу
Δm=2mΔ0
где 0 ≤ m ≤ k-1; Δ0 — квант нулевой очереди (Δ0~200 мс).
Эта дисциплина обладает адаптивным свойством, т. к. процессы с большей длительностью вытесняются в очереди с большими номерами. Данный метод может быть улучшен, если учитывать априорную информацию о длительности выполнения процесса, поступающую с запросом и ставить задачу сразу в соответствующую очередь m. Чтобы избежать «застревания» больших программ в k-й очереди на длительное время, в некоторых системах ограничивают пребывание запроса в ней. После истечения этого времени запрос переходит в очередь с большим приоритетом.
Вычислительная система реального времени (РВ) -система, соединенная с некоторым внешним объектом и обрабатывающая поступающую в нее информацию о его состоянии столь быстро, что результат обработки удается использовать для воздействия на протекание процесса в объекте.
Еще большую значимость, чем в системах коллективного пользования, в системах РВ приобретает такой показатель как время реакции, которое составляет обычно от нескольких миллисекунд до нескольких секунд. Системами реального времени являются АСУ ТП и многоканальные программируемые контроллеры. Операционные системы реального времени (ОС РВ) обязательно предполагают реализацию мультипрограммирования. В них центральную роль приобретает такая компонента как планировщик задач.
Основным объектом обработки ОС РВ является задача. Задача - совокупность программы, данных и нескольких системных параметров, необходимых для ее выполнения в режиме РВ. В системе РВ ряд задач выполняется постоянно с момента ее включения, однако и во время работы могут подготавливаться и включаться новые задачи. Задача выполняется как процесс мультипрограммной ВС, а, следовательно, может иметь статус «свободен» или «приостановлен». В отличие от ранее рассмотренных общих подходов к организации выполнения параллельных процессов для процессов РВ разделим состояние «приостановлен» на две причины:
· «ждет события» (ожидает условия, истечения интервала времени или освобождение периферийного ресурса)
· «готова к выполнению» (только что поступила в систему и (или) ждет освобождение главного ресурса — центрального процессора).
Кроме этого, для задачи характерно состояние, в котором она создается, и состояние завершенности для прекращения выполнения. На рисунке 2.4.1 представлена диаграмма важнейших состояний задачи реального времени, выполняемой под управлением ОС РВ.
Рисунок 2.4.1 – Граф состояний задач РВ
Планировщик задач вступает в работу в двух случаях: если истек постоянный квант времени системы, или если из состояния «Выполняется» до истечения кванта выходит одна из задач. В любом из этих случаев планировщик выбирает для дальнейшего выполнения самую приоритетную задачу из «Готовых» или «Ждущих события».
На диаграмме (Рис.2.4.2) приведен пример переключения планировщиком выполнения с задачи №1 на более приоритетную задачу №2. После её завершения снова возобновляется выполнение задачи №1, т.к., по-видимому, не нашлось более приоритетных в очереди ожидания. После завершения задачи №1 планировщик срабатывает еще до истечения кванта времени и ставит на выполнение задачу №3. Величина кванта времени гарантирует максимальную задержку (ожидание) перевода на выполнение любой более приоритетной задачи и является важной характеристикой системы РВ (время реакции системы ∆).
Рисунок 2.4.2 – Работа планировщика задач
Пример набора типовых задач реального времени в автоматизированной системе управления неким технологическим процессом (АСУ ТП) представлена на диаграмме (Рисунок 2.4.3).
- - задача опроса датчиков (периодическая, с периодом Т)
- - выдача управляющих воздействий (периодическая, но реже, чем
опрос датчиков)
- оптимизация процесса (имеет приоритет ниже, чем 1) и 2) и
работает как периодически, так и по событию)
- фоновая задача (низший приоритет)
- задача, работающая по событию (аварийная сигнализация – высший приоритет)
Рисунок 2.4.3 – Пример взаимодействия задач РВ