Управляющие программы
Управляющая программа (диспетчер) системы реального времени является аналогом операционной системы компьютера. Она управляет процессами и распределением ресурсов в системах реального времени, запускает и останавливает соответствующие процессы для обработки входных сигналов и распределяет ресурсы памяти и процессора. Однако обычно в управляющих программах отсутствуют более сложные средства, присущие операционным системам, например средства управления файлами.
Компоненты управляющей программы (рис. 11.4) зависят от размеров и сложности проектируемой системы реального времени. Обычно управляющие программы, за исключением самых простых, состоят из следующих компонентов.
1. Часы реального времени периодически предоставляют информацию для планирования процессов.
2. Обработчик прерываний управляет апериодическими запросами к сервисам.
3. Планировщик просматривает список процессов, которые назначены на выполнение, и выбирает один из них.
4. Администратор ресурсов, получив процесс, запланированный на выполнение, выделяет необходимые ресурсы памяти и процессора.
5. Диспетчер запускает на выполнение какой-либо процесс.
Рис. 11.4. Компоненты управляющей программы реального времени
Управляющие программы систем, предоставляющих сервисы на постоянной основе, например телекоммуникационных или мониторинговых систем с высокими требованиями к надежности, могут иметь еще несколько компонентов.
• Конфигуратор отвечает за динамическое переконфигурирование аппаратных средств. Не прекращая работу системы, из нее можно извлечь аппаратные модули и изменить систему посредством добавления новых аппаратных средств.
• Менеджер неисправностей отвечает за обнаружение аппаратных и программных неисправностей и предпринимает соответствующие действия по их исправлению.
Входные сигналы, обрабатываемые системой реального времени, обычно имеют несколько уровней приоритетов. Для одних сигналов, например связанных с исключительными ситуациями, важно, чтобы их обработка завершалась в течение определенного интервала времени. Если процесс с более высоким приоритетом запрашивает сервис, то выполнение других процессов должно быть приостановлено. Вследствие этого администратор системы должен уметь управлять по крайней мере двумя уровнями приоритетов системных процессов.
1. Уровень прерываний является наивысшим уровнем приоритетов. Он присваивается тем процессам, на которые необходимо быстро отреагировать. Примером такого процесса может быть процесс часов реального времени.
2. Тактовый уровень приоритетов присваивается периодическим процессам.
Еще один уровень приоритетов может быть у фоновых процессов, на выполнение которых не накладываются жесткие временные ограничения, (например, процесс самотестирования). Эти процессы выполняются тогда, когда есть свободные ресурсы процессора.
Внутри каждого уровня приоритетов разным классам процессов можно назначить другие приоритеты. Например, может быть несколько уровней прерываний. Во избежание потери данных прерывание от более быстрого устройства должно вытеснять обработку прерываний от более медленного устройства.
Дата добавления: 2015-08-14; просмотров: 2054;