И. Соммервилл - Инженерия программного обеспечения (1133538), страница 71
Текст из файла (страница 71)
1. Олкклмчолиг злекэ~~юпюклкил генерируется программой, контролирующей электрическую цепь. В ответ на этот сигнал система переключает сеть на резервное питание посредством подачи сигнала электронному прибору переключения питания. 2. Сигклл овэюрженки является входным и генерируется одним издатчнков системы. В ответ на него система определяет номер комнаты, в которой находится активный датчик, вызывает полицию, инициируя звуковой синтезатор, и включает зв>козой сигнал тревоги н световую сигнализацию здания в месте нарушения. На следующем шаге процесса проектирования определяются времени лк ограничения для каждого входного н ответного синилов системы. В табл.
13.1 перечислены эти временные ограничения. К разным типам датчиков, генерирующих входные сигныпя, прсдьявлены разные временные требования. 276 Часть 1П. Проектирование Таблица 13.1. Временные ограничения на входные н ответные сигналы системы Снснаа Временные ограничения Отключение влек. Включение световой Световая сигнализация должна вкяючитыя через полсекунды по- сигнализации еле сигнала датчика Связь Синтезатор речи 400 Гц 60 Гц 100 Гц 500 Гц Отключение электропитании Система сишализареи Система сигнал Рис, е36.
Лфхиимхогуро ироцеееоо аеояемм охранной еиеиолизации тропитания Сигнализация иа двери Сигнализация на окнах Датчикдвижения Звуковой сигнал Переключение на питание от батарей должно произойти в тече- ние 50 мс Каждый сигнальный датчик на дверях проверяется дважды в секунду Каждый датчик на окне проверяется дважды в секунду Каждь<й датчик движения опрашивается дважды в секунду Звуковой сигнал должен прозвучать через полсекунды после сигна- ла датчика Вызов в полицию должен начаться в течение 2 с после сигнала датчика Синтезированное сообщение должно быть готово через 4 с после сигнала датчика 13. Проектирование систем реальнога времени 277 На следующем этапе проектирования распределяются системные функции по параллельным процессам.
Периодически нужно опрашивать три типа датчиков, поэтому у каждого типа датчиков имеется связанный с ними процесс. Кроме этого, есть система управления прерываниями, контролирующая электропитание, система связи с полицией, синтезатор речи, система включения звуковой сигнализации и система, включающая световую сигнализацию возле датчика. Каждой системой управляет независимый процесс, На рис. 12ьб показана архитектура процессов системы. На схеме, представленной на рис. 15.6, стрелки (с примечаниями), соединяющие отдельные процессы, обозначают потоки данных между процессами с указанием типа данных.
Надписи над стрелками справа над каждым процессом указывают систему, управляющую данным процессом. На стрелках вверху указано минимальное значение частоты выполнения процесса. Частота выполнения процессов определяется количеством датчиков н временньаш требованиями, предъявляемыми системе. Предположим, что в системе имеется 60 дверных датчиков, которые требуется проверять два раза в секунду. Следовательно, связанный г дверным датчикам процесс должен выполняться 60 раз в секунду (частота 60 Гц). Также 400 раз в секунду выполняется процесс, контролирующий датчик движения.
Апериодические процессы обозначены стрелками с пунктирными линиями. На этих линиях указаны события, которые вызывают данный процесс. Все основные исполнительные процессы (звуковой и световой сигнализации и др.) начинаются командой из процесса Система безопасности; им не нужны данные из других процессов. Процессу, управляющему электропитанием, также не нужны данные из других частей системы. Все представленные процессы можно реализовать на языке ) ача как потоки. Листинг ГВЛ содержит код )ага реализации процесса Вц(ю)пдМопйог (мониторинг здания), опрашивающего датчики системы.
В случае сигнала тревоги программа активизирует систему сигнэлиза. ции. Пусть в нашем примере система соответствует времепним требованиям. Как уже отмечалось, в языке ) ача 20 нет средств для задания частоты выполнения потоков. Листинг 13.1. Реализации процесса моннторннга здания //См. Иеп-страницу Ьггр://иии.зобгиаге-епдзп.сом/, //где представлен полный дача-код этого примера с1азз Ви1161пдмоп1сог ехсепг(з ТЬгевс( ( Ви1161пдзепзог исп, с(оог, моче[ Бйгеп з1геп = пеи Бсгеп()г ЬйдЬСз 11дпгз = пеи ЬйдЬГз(); Бупспез1зег зупспезсгег = пеи Бупспезсгег(); Ооогбепзогз аоогз = пеи Ооогзепзогз(30) [ И1пбоизепзогз и1паоиз = пеи И(пбоизепзогз (50) г мачежепгяепзагз точетепгз пеи мочежепгБепзогз(200)[ РоиегМоп(сот рм = пеи РоиегМоп1еог[); Ви11с(1пдмоп1гаг() ( //инициализация датчиков и запуск процессов зсгеп.згагг();11дьгз.згагг н г зупгпея1гег.зсагт();испбоиз.зеагс(); с(аогз.згагс();шачетепсз.ясаке();рт.згагг(); риЬ)сс чохс( гип () ( 1пг гоош 0; иЬз1е (ггие) ( 278 Часть Ш.
Проектирование //прозерка датчиков движения два раза в секунду (400 Гц) воче = вочевепсз.дегча1()) //проверка оконных датчиков два раза в секунду (100 Гц) итп = итпаоиз.деГЧа1()г //прозерка дверных датчиков два раза в секунду (60 Гц) г)оог = аоогз.деГЧа1()г 1г(пюче.зепзогча1 =1(аоот.зепзогча1 =1(итп.зепзогча1==1) //датчик зарегистрировал нарушение 1г(вате.зепзогча1 = 1) гоот = пюче.гоотг 1г(с)оаг.зепзогча1 == 1) гоот = даат.гоавг 11(и>п.зепзогча1 == 1) гост = иуп.гоопн 11дпгз.оп(гооп1)гзтгеп.оп и )зупгпезйгег.оп(гоев)г ЬгеаХ) ) 11длгз.
эпагс(оип (); зтгеп. зпагс(оип (); зупгпезтпег. зпасаоип () г и1пааиз.зпагааип()гс(оогз.зпагг(оип()гвочевепгз.зпигг)оип()г )/lгцп )//Ва1101пдмоптсог Поскольку данная система нс содержит строгих временных требований, се можно реализовать на языке )ача. Конечно, в)ача 2.0 нет никакой гарантии соответствия временным спецификациям. В пашей системе все датчики опрашиваются одинаковое количество раз, чего не бывает в реальных системах. После определения архитектуры процессов системы начинается разработка алгоритмов обработки входных сигналов и генерации ответных сигналов. Как уже отмечалось в разделе 3.1, этот этап проектирования необходимо выполнять как можно раньше, чтобы удостовериться, что система будет соответствовать временным требованиям.
Если соответствующие алгоритмы оказываются сложными, может возникнуть необходимость в изменении временных ограничений. Обычно алгоритмы систем реального времени сравнительно просты. Они проверяют ячейки памяти, выполняют некоторые простые расчеты и >правляют передачей сигнала. В примере системы сигнализации проектирование алгоритмов не рассматривается. Последним этапом процесса проектирования является составление временнаго графика выполнения процессов.
В нашем примере нет процессов со строгими сроками выпал. пения. Рассмотрим приоритеты процессов. Все процессы, опрашивающие датчики, имеют один и тот жс приоритет. Процессу, управляющему электропитанием, необходимо назначить более высокий приоритет. Приоритеты процессов, управляющих системой сигнализации, и процессов, опрашивающих датчики, должны быть одинаковы. Систему охранной сигнализации можно отнести скорее к системам наблюдения, чем к системам управления, так как в ней нет исполнительных механизмов, напрямую зависящих от значений датчиков. Примером системы управления может служить система управ.
ленив отоплением здания. Система наблюдает за температурными датчиками, установленными в разных комнатах здания и переключает нагревательные приборы в зависимости от реальной температуры и температуры, установленной в терморслс. Тсрзгорсле, в свою очередь, контролирует отопительный котел. Архитектура процессов такой системы показана на рис. 1>).7) в общем виде ана выгля. дит подобно системе сигнализации.
Дальнейшее рассмотрение этого примера прсллагается читателю в качестве упражнения. 13. Проектирование систем реального времени 279 600 Гц пиленца перекппчепкп отспптепьпнх зпемептее Впир цнпзтн Пппцесс теРмоРнн 000 Гц Рис. 13.7. Арянэмкмуупт процессов алсвммм уттрлмяитпл отлоилсп истл 13.4. Системы сбора данных Эти системы представляют другой кчасс систем реального врелтени, которые обычно базируются на обобщенной архитектурной модели. Такие системы собирают данные с сенсоров в целях их последующей обработки и анализа.
Для иллюстрации этого класса систем рассмотрим модель, представленную на рис. 13,8. Здесь изображена система, собирающая данные с датчиков, которые измеряют поток нейтронов в ядерном реакторе. Данные, собранные с разных датчиков, помещаются в буфер, из которого затем извлекаются и обрабатываются. На мониторе оператора отображается среднее значение интенсивности потока нейтронов.
Датчни (значение дамен — потек двнньх] Ркс. 13.8. Лрхвэккжуучт алстемм наблюдения зп интеисивкопаью яоюокп кой мронов Каждый датчик связан с процессолт, который преобразует аналоговый сигнал, показывающий ннте~тсивность входного потока, в цифровой. Сигнал совместно с идентификатором датчика записывается в буфер, где хранятся данные. Процесс, отвечающий за абра. батку данных, берет их из буфера, обрабатывает и передает процессу отображения для вывода на операторную консоль. В системах реального времени, ведущих сбор и обработку данных, скорости выполнения н периоды процесса сбора и процесса обработки могут не совпадать.