И. Соммервилл - Инженерия программного обеспечения (1133538), страница 68
Текст из файла (страница 68)
° устаноалена полносф$~аятоматизирояанная бензоколонка Водитель вставляет кредитную карточку а счнтыяающае'устройстяо, сяязанное с насосом; карточка по линиям коммуникаций проаеряется кредитной кампанией, устаназлияаатся требуемое количество бензина. Затем аатомобиль заправляется горючим. Когда подача прекращается, с кредитной карточки аодителя снимается стоимость попу~анною бензина. Кредитная карточке яозарацается после вычета водителю.
Если карточка неяерна, она возвращается аодителю перед подачей топлиза. 12.8. Запишите точные определения интерфейсоа на языке Зюю или С++ для объектоа, определенных а упражнении 12.7. 12.9. Нарисуйте диаграмму последоаательностей, а которой отображены взаимодействия между обьектами я системе "Дневник группы". 12.10. Нарисуйте диаграмму состояний, на которой отображены возможные изменения состояний для одного или более обьектоя, определенных а упражнении 12.7.
Проектирование систем реального времени в ма к Цель настоящей главы — познакомить с технологией проектирования систем реального времени и с некоторыми общими архитектурами таких систеи. Про. читав зту главу, вы должны: знать основные концепции сиегем реального времени и поиимать, почему эти системы обычно реализованы в виде параллельных процессов; освоить основные этапы процесса проектироваиия систем реального времени; знать назначение управляющей программы системы реального времени; познакомиться с общими архитектурами процес.
сов систем наблюдения и управления, а также систем сбора данных. 13.1. Проектирование систем 13.2. Управляющие программы 13.3. Системы наблюдения и управления 13.4. Системы сбора даииых Ябб класть П1. Проектирование В настоящее время компьютеры применяются для управления широким спектром раэ. нообраэных систем, начиная от простых домашних устройств и заканчивая крупными промышленными комплексами. Эти компьютеры непосредственно взаимодействуют с аппаратными устройствами.
Программное обеспечение таких систем (уцравляющий компьютер плюс управляемые объекты) представляет собой встроенную систему реального времени, задача которой — реагировать на события, генерируемые оборудованием, т.е. в ответ на эти события вырабатывать управляющие сигналы. Такое ПО остугаиоогиин в большие аппаратные системы и должно обеспечивать реакцию на события, происходящие в окружении системы, в режиме (голл оного орсиггги. Системы реального времени отличаются от других типов программных систем. Их корректное функционирование зависит от способности системы реагировать на события через заданный (как правило, короткий) интервал времени.
Вот как я определяю систему реального времени. Система реального времени — это программная система, правильное функциопнрова. ние кггторой зависит от результатов ее работы и от периода времени, в течение кото. рого получен результат. еМягкая" система реального времени — ато система. в которой операции удгьшюгггас если в течение определенного интервала времени не выдан ре.
зультат. "Жесткая" система реального времени — это система, операции которой становятся нокер)ггкюимэги, т.е. вырабатывается сигнал об ошибке, если в течение определенного интервала времени результат не выдан. Систему реального времени можно рассматривать как систему "стимул-отклик". При получении определенного входного стимула (входного сигнала) система генерирует связанный с ним отклик (ответное действие или ответный сигнал). Следовательно, поведение системы реального времени можно определить с помощью списка входных сигналов, получаемых системой, связанных с ними ответных сигналов (откликов) и интервала времени, в течение которого система должна отреагировать на входной сигнал. Входные сигналы делятся надва класса.
1. Пфиодичггиио сигиолм происходят через предопределенные интервалы времени. Например. система проверяет датчик каждые 50 миллисекунд, и предпринимает действия (реагирует) в зависимости от значений, полученных от датчика (стимула). 2. Алгриодичопгио пггнолм происходят нерегулярно. Обычно они "сообщают о себе" посредством механизма прерываний. Примером апериодического сигнала может быть прерывание, которое вырабатывается по завершении передачи вход/выход и размещения данных в буфере обмена. В системах реального времени периодические входные сигналы обычно генерируются сенсорами (датчиками), взаимодействующими с системой.
Оии предоставляют информацию о состоянии внешнего окружения системы. Системные отклики (ответные сигналы) направляются группе исполнительных механизмов, управляющих аппаратными устройствами, которые затем воздействуют па окружение системы. Апсриодические входные сит. палы лгогзт генерироваться и сенсоралги. и исполнительными механизмами. Как правило, апериодические сигналы означают исключительные ситуации, например ошибки в работе аппаратуры. На рнс. 13.1 показана модель "сенсор-система-исполнительный механизм" для встроенной системы реального времени. 13.
Проектирование систем реального времени 267 Рис. 13.1. ОбЧГая модееь системы репе ъиого времени Системы реального времени должны реагировать на входные сигналы, происходящие в разные моменты времени. Саедовательно, архитектуру такой системы необходимо организовать так, чтобы управление переходило к соответствующему обработчику как можно бы. строе после получения входною сигнала. В последовательных программах такой механизм передачи управления невозможен. Поэтому обычно системы реального времени проекти. руют как мнолсество параллельных вмщмодейсьвующих процессов.
Часть системы — управляющая программа, часто называемая диспетчером, — управляет всеми процессами. Большинство моделей "стимул-отклик" систем реального времени сводятсл к обобщенной архитектурной модели, состоящей из трех типов процессов (рис. 1$.2). Для каждого типа сенсора имеется процесс управления сенсором; вычислительный процесс определяет необходимый ответный сигнал на полученный системой входной сигнал; процессы управления исполнительными механизмами управляют действиями этих механизмов.
Такая модель позволяет быстро собрать данные со всех имеющихся сенсоров (до того, как произойдет следующий ввод данных), обработать их и получить ответный сигнал от соот. ветсгвующего исполнительного механизма. 1'ие. 13.2. донесем управления еекеораии и иепоянижельиыми мехапюмами 13.1. Проектирование систем Как указывалось в главе 2, в процессе проектирования системы принимаются решения о том, какие свойства будут реализованы программной частью системы, а какие — аппаратными средствами. Времеппие ограниченил и др)тие требования предполагают, что 268 Часть Ш. Проектирование некоторые функции системы, например обработку сигналов, необходимо реализовать на специально разработанном оборудовании.
Таким образом, процесс проектирования систем реального времени включает в себя проектирование оборудования (аппаратуры) спе. циального назначения и проектирование программного обеспечения. Аппаратные компоненты обеспечивают более высокую производительность, чем эквивалентное им (по выполняемым функциям) программное обеспечение. Аппаратным средствам можно поручить "узкие" места системной обработки сигналов и, таким образом, избежать дорогостоящей оптимизации ПО. Если за производительность системы отвечают и'н аппаратные компоненты, при проектировании ПО основное внимание можно уделить его персносимосги, а вопросы, связанные с производительностью, отходят на второй план.
Решения о распределении функций по аппаратным и программным компонентам еле. дует принимать как можно позже. поскольку архитектура системы должна состоять из автономных компонентов, которые можно реализовать как аппаратно, так и программно. Именно такая структура соответствует целям разработчика, проектирующего удобную в обслуживании систему.
Следовательно, результатом процесса проектирования высококачественной системы должна быть система, которую можно реализовать и аппаратными и программными средствами. Отличие процесса проектирования систем реального времени от других систем состоит в том, что уже на первых этапах проектирования необходимо учитывать время реакции системы. В центре процесса проектирования системы реального времени — события (входные сигналы), а не объекты или функции.
Процесс проектирования таких систем состоит из нескольких этапов. 1. Определение множества входных сигналов, которые будут обрабатываться системой, и соответствующих им системных реакций. т.е. ответных сигналов. 2. Для каждого входного сигнала и соответствующего ему ответного сигнала вычисляются временные ограничения.
Они применяются к обработке как входных, так и ответных сигналов. 3. Объединение процессов обработки входных и ответных сигналов в виде совокупности параллельных процессов. В корректной модели системной архитектуры каждый процесс связан с определенным классом входных и ответных сигналов (как показано на рис. 13.2).