Логическая архитектура

Жизненный цикл жестких систем реального времени

Наш подход заключается в разделении архитектурного плана на две фазы:

· логическая архитектура;

· физическая архитектура.

Логическая архитектура включает действия, которые могут быть проделаны независимо от условий, накладываемых средой исполнения, и в первую очередь направлены на удовлетворение функциональных требований. Физическая архитектура принимает в расчет эти и другие условия и вдобавок охватывает нефункциональные требования. Физическая архитектура формирует основу для того, чтобы нефункциональные требования уже были удовлетворены, когда существуют детальный проект и реализация. Например, если все объекты построены с учетом худших условий по распределению времени и надежности, то сама система будет удовлетворять требованиям сохранности. Таким образом, физическая архитектура позволяет оценить параметры разработки для достижения компромиссного решения для всех требований задачи.

В этом документе мы в первую очередь касаемся жестких систем реального времени, поэтому физическая архитектура фокусируется на распределении времени и необходимой планировке, что будет гарантировать, что однажды построенная система будет работать корректно и по данным, и по времени. Чтобы провести этот анализ, необходимо оценить время исполнения имеющегося кода, получить зависимости по времени целевого процессора и другие параметры среды исполнения.

Когда архитектурные фазы закончены, можно начинать серьезное планирование деталей проекта. Когда это будет сделано, нужно измерить характеристики выполнения кода, чтобы гарантировать, что верхние оценки времени выполнения в самом деле корректны. Если же это не так (что обычно имеет место для новых приложений), фаза физической архитектуры пересматривается и обновляется. Если же все-таки система не реализуется, тогда либо должны быть пересмотрены детали проекта (при небольших отклонениях), или разработчик должен вернуться к фазе логической архитектуры (при серьезных проблемах). Когда измерения кода пройдены, выполняется тестирование приложения. Оно должно включать действительные распределения времени по коду.

Существует два аспекта любого метода проектирования, которые облегчают создание логической архитектуры жестких систем реального времени. Во-первых, абстракции должна быть дана конкретная поддержка, что, как правило, и нужно проектировщикам систем. Во-вторых, логическая архитектура должна планироваться с тем условием, чтобы возможно было ее анализировать во время проектирования физической архитектуры.

Результатом иерархического разделения в ходе фазы логического планирования является коррекция конечных объектов с полным определением их взаимодействием. Предполагается, что некоторые формы процесса функционального разделения могут приводить к определению новых объектов.

Конечные объекты характеризуются как:

· циклические;

· единичные;

· защищенные;

· пассивные.

Циклические и единичные действия являются обычными в системах реального времени; каждое из них должен содержать поток, который создается во время выполнения. Приоритет потока устанавливается во время планировки в фазе физической архитектуры. Защищенные объекты управляют доступом к данным, которые доступны нескольким потокам (т.е. циклическим и единичным объектам); в частности, они предусматривают взаимное исключение. В однопроцессорных системах это достигается определением верхнего приоритета для каждого защищенного объекта, который равен максимальному количеству потоков, использующих его. Когда поток обращается к защищенному объекту, он начинает работать с верхним приоритетом и, следовательно, получает исключительный доступ к данным, хранимым в защищенном объекте. Защищенные объекты подобны перехватчикам, в которых вызывающий может быть заблокирован, если условия не позволяют ему продолжить. Это используется для задержки единичных объектов, пока не произойдет освобождающее событие. Последним важным типом объектов является пассивный. Он используется для объекта, который или используется только одним объектом, или может использоваться совместно без ошибок.

Все четыре вышеуказанных типа объектов приемлемы как конечные объекты в жестких системах реального времени. Однако возможно, что система реального времени имеет подсистему, которая не является системой реального времени. Объекты в таких подсистемах являются пассивными или активными. Активные типы объектов могут участвовать в разделении главной системы, но должны быть трансформированы в один из вышеуказанных типов до достижения конечного уровня.

С помощью этих типов конечных объектов могут поддерживаться стандартные конструкции, используемые в жестких системах реального времени:

· Периодические действия - представляется циклическими объектами.

· Единичные действия - представляется единичными объектами.

· Действия, обусловленные приоритетом - влекут серии вычислений на конечных объектах. Вероятно появление в проектах, которые должны отражать транзакционные сроки.

Процесс планирования логической архитектуры может начаться с разработки активных и пассивных объектов. Процесс разделения приведет к разработке конечных объектов соответствующего характера. Например, требуемая циклическая транзакция от входа к выходу может быть сначала представлена как единичный активный объект, но потом может быть реализована как циклический объект с последующими сериями единичных объектов, связанных защищенными объектами.