И. Соммервилл - Инженерия программного обеспечения (1133538), страница 70
Текст из файла (страница 70)
5. Дисяегкчф запускает иа выполнение какой-либо процесс. Выпопязвыый пуаиесс Урсс 13.4. Каияоненжм уяРлеля кляпе яУмсРаммы Репа ышсо вдемеии Управляющие программы систем, предоставляющих сервисы на постоянной основе, например телекоммуникационных или мониторинговых систем с высокими требованиями к надежности, могут иметь еще несколько компонентов.
° Кснфиеураяюр отвечает за динамическое переконфигурирование аппаратных средств Г2051. Не прекращая работу системы, из нее можно извлечь аппаратные модули и изменить систему посредством добавления новых аппаратных средств. ° Менедхсер яеисярлвяосвмй отвечает за обнаружение аппаратных и программных не. исправностей и предпринимает соответствующие действия по их исправлению. Вопросы отказоустойчивости и восстановления систем рассматриваются в главе 18. Входные сигналы, обрабатываемые системой реального времени, обычно имеют несколько уровней приоритетов. Для одних сигналов, например связанных с исключитель.
нылси ситуациями, важно, чтобы их обработка завершалась в течение определенного ин. терзала времени. Если процесс с более высоким приоритетом запрашивает сервис, то выполнение других процессов должно быть приостановлено. Вследствие зтого адми- 13. Проектирование систем реального времени 273 нистратор системы должен уметь управлять по крайней мере двумя уровнями приорите.
тов системных процессов. 1. У5юеень я)мрмвлний является наивысшим уровнем приоритетов. Он присваивается тем процессам, на которые необходимо быстро отреагировать. Примером такого процесса может быть процесс часов реального времени. 2. Такякммйу)ьаэьнь приоритетов присваивается периодическим процессам. Еще один уровень приоритетов может быть у фоновых процессов, на выполнение которых не накладываются жесткие временные ограничения, (например, процесс самотестирования). Эти процессы выполняются тогда, когда есть свободные ресурсы процессора.
Внутри каждого уровня приоритетов разным классам процессов можно назначить другие приоритеты. Например, может быть несколько уровней прерываний. Во избежание потери данных прерывание от более быстрого устройства должно вытеснять обработку прерываний от более медленного устройства. 13.2.1. Управление процессами Управление процессами — зто выбор процесса на выполнение, выделение для него ресурсов памяти и процессора и запуск процесса.
Периодическими называются процессы, которые должны выполняться через фикси. рованный предопределенный промежуток времени (например. при сборе данных ьши управлении исполнительными механизмами). Управляющая программа системы реального времени для определения момента запуска процесса использует свои часы реального времени. В большинстве систем реального времени есть несколько классов периодических процессов с разными периодами (интервалами времени между выполнением процессов) и длительностью выполнения. Управляющая программа должна быть способна в лю.
бой момент времени выбрать процесс, назначенный на выполнение. Часы реального времени конфигурируются так, чтобы периодически подавать тактовый сигнал, период между сигналами составяяет обычно несколько миллисекунд. Сигнал часов инициирует процесс на уровне прерываний, который запускает планировщик процессов для управления периодическими процессами. Процесс на уровне прерываний обычно сам не управляет периодическими процессами, поскольку обработка прерываний должна завершаться как можно быстрее. Действия, выполняемые управляющей программой при управлении периодическими процессами, показаны на рис. 13.5.
Планировщик просматривает список периодических процессов и выбирает из него на выполнение один процесс. Выбор зависит от приоритета процесса, периода процесса, предполагаемой длительности выполнения и конечных сроков завершения процесса. Иногда эа один период между тактовыми сипшлами часов необходимо выполнить два процесса с разными длительностями выполнения. В такой ситуации один процесс необходимо приостановить на время, соответствующее его длительности. Рцс 13.5. Дейсямил уя)кмллкжзей ярогрлям и ярк эпяусхе я)хчзегся Если управляющей программой зарегистрировано прерывание, это означает, что к одному из сервисов сделан запрос. Механизм прерываний передает управление предопре- 274 *1асть П1.
Проектироваиие деленной ячейке памяти, в которой содержится команда переключения на программу об. служивания прерываний. Зта программа должна быть простой. короткой и быстро выполшггься. Во время обслуживания прерываний все другие прерывания системой игнорируются. Чтобы уменьшить вероятность потери данных, время пребывания системы в таком состоянии должно быть минимальным. Программа, выполняющая сервисную функцию. должна перекрыть досзуп следующим прерываниям, чтобы не прервать сазй себя.
Она должна выявить причину прерывания и инициировать процесс с высоким приоритетом для обработки сигнала, вызвавшего прерывание. В некоторых системах высокоскоростного сбора данных обработчик прерываний сохраняет лля последующей обработки данные, которые в момент получения преры. ванил накалились в буфере.
После обработки прерыванил управление вновь переходит к управляющей програлзме, В любой момент времени может быть несколько назначс|шых на выполнение процессов с разными уровнями приоритетов. Планировщик устанавливает порядок выполнения процессов. Эффективное планирование играет важную роль, если необходимо соответствовать требованиям, которые предъявляются к системе реального времени. Существует две осповп ыс стратегии планирования процессов. 1. Нгвмэмснлюэзее лллмкрээлквг. Один процесс планируется на выполнение, он запускается и выполняется до конца или блокируется по каким-либо причинам, например при ожидании ввода данных.
При таком планировании могут возникнуть проблемы. связанныс с тем, что в случае нескольких процессов с разными приоритсталш процесс с высоким приоритетом должен ждать завершения процесса с нпэкил~ приоритетом. 2. Вкэигялюглее иланкрэвание. Выполнение процесса может быть приостановлено, если к сервису поступили запросы от процессов с более высоким приоритетом.
Процесс с более высоким приоритетом имеет преимущество перед процессом с более низким уровнем приоритета, и поэтому ему выделяется процессор. В рамках этих стратегий разработано множество различных алгоритмов планирования. К пим относится циклическое планирование, при которолз каждый процесс выполняется по очереди, и планирование по скорости, когда при первом выполнении получают более высокий приоритет процессы с коротким периодом выполнения [б4].
Каждый иэ алгоритмов планирования имеет определенные преимущества и недостатки, однако здесь мы нх рассматривать не будем. Информация о назначенном на выполнение процессе передается администратору ресурсов. Он выделяет для выбранного процесса необходимую памвть, а в многопроцессор. ной системс — еще и процессор. Затем процесс помещается в "список назначений", т.е.
в список процессов, назначенных на выполнение. Когда процессор завершает выполнение какого-либо процесса и становится свободным, вызывается диспетчер. Он просматривает имеющийся список, выбирает процесс, который можно выполнять на свободном процессоре, и запускает его на выполнение. 13.3. Системы наблюдения и управления В настоящее время можно выделить несколько классов стандартных систем реэлыюго времени: мониторинговые системы (системы наблюдения).
системы сбора ланиых, сис. темы управления и др. Каждому типу систем соответствует особая структура процессов. поэтому при проектировании системы, как правило, архитектуру создают по олному из 13. Проектирование систем реальнога времени 275 существующих стандартных типов. Таким образам, вместо обсуждения общих проблем проектирования систем реального времени здесь лучше рассмотреть проектирование с помощью обобщенных моделей. Системы наблюдения н управления — важный класс систем реального времени. Их основным назначением является проверка сеисоров (датчиков), предасгавляющих информацию об окружении системы, и выполнение соответствующих действий в зависимости ат поступившей от сенсоров информации. Системы наблюдения выполнлют действия восле регистрации особого значения сенсора.
Системы управления непрерывно управляют аппаратными исполнительными механизмами на основанл~и значений, получаемых от сепсоров. Рассмотрим следующий пример, Пусть в здании установлена система охранной сигнализации. В системе используется несколько типов сенсоров: датчики движения, установленные в отдельных комнатах; датчики на окнах первого этажа, которые подают сигнал, если разбивается окно; дверные датчики, фиксирующие открывание дверей. Всего в системе зО датчиков на окнах, 30 на дверях и 200 датчиков движения. Когда какой. либо датчик фиксирует присутствие постороннего, система автоматически вызывает местную полицию и, используя звуковой синтезатор, сообщает местоположение датчика (помер комнаты), от которого нлет сигнал. В комнатах, расположенных возле активного датчика, включается световая сигнализация и звуковой аварийный сигнал.
Система сигнализации обычно включается через сеть, на может работать и от батарей. Проблемы с электропитанием рспктрпруются специальной программой, контролирующей напряжение электросети. Если в сстн регистрируется падение напряжения, программа переключает систему сигнализации иа резервное питание от батарей. В этом примере описана "мягкал" система реального времени, так как здесь нет жестких времени ли требований.
В такой системс пе нужно регистрировать события, пропсходшцис с высокой скоростью, поэтому опрос датчиков люжет проводиться дш1 рыа в сек> пду. Процесс проектирования начинается с описания апериодическпх входных сигналов, получаемых системой, и связанных с ними реакций системы. Здесь мы ограничимся упрощенным проектом, в котором не учитываются сш палы, порождаемые процедуралш самопроверки, и внешние сигналы. генерируемые при тестировании сл1стемь~ илн прн ее выключении в случае ложной тревоги. В конечном счете система обрабатывает только лва типа входных сигналов.