скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Разработка системы реального времени в виде планировщика исполнения заданий

Функциональная модель предназначена для дальнейшей декомпозиции функций системы. Она состоит из набора деревьев функций, корнями которых являются случаи использования. Дерево может содержать узлы двух видов: собственно функции и использование описанных ранее функций. Кроме того, функция может иметь свойство групповой, это означает, что ее ”дети” фактически находятся вместо нее на том же месте. Связь родительского узла с дочерними может иметь метку, описывающую характер в связи.

Отметим, что модель случаев использования в Real является подмножеством одноименной модели UML. То, что в UML делается с помощью не вошедшей в Real части модели случаев использования, в Real предлагается делать с помощью модели функций, которая является вариацией функциональной модели из структурных методологий разработки программного обеспечения. Модель функций Real основана на модели функций SDL, однако оттуда были убраны некоторые детали (в Real не предполагается так широко использовать модель функций, поскольку не хотелось бы подталкивать разработчика к алгоритмическому методу разработки системы) и добавлены использование функций, группы функций, а также связь с моделью случаев использования.

2.4.3.  Динамическая модель.

Она описывает поведение системы — взаимодействие между различными ее компонентами, взаимодействие системы с ее окружением и поведение самих компонент.

На начальных этапах разработки можно придерживаться одной из двух стратегий. Первая: сначала специфицировать классы системы, а затем объекты и сценарии взаимодействия. Она будет использоваться с большей вероятностью, если разработчикам хорошо знакома предметная область. Возможна и другая стратегия — в том случае, если на этапе анализа приходится изучать незнакомую предметную область. Основное назначение модели объектов — описание различных ролей, которые могут играть экземпляры классов системы. Каждой функции из функциональной модели Real можно сопоставить диаграмму объектов, назначение которой — описать типичную ”конфигурацию” объектов, задействованных в осуществлении данной функции, а также описать связи между ними. При использовании объектно-ориентированного подхода выполнение функций системы реализуется как совместная деятельность нескольких объектов. Основными ее элементами являются объекты-роли и отношения между ними.

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

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

Поведенческая модель описывает поведение составляющих систему классов с помощью расширенного конечного автомата и представлена в Real двумя нотациями: в стиле STD и SDL. Фактически, поведенческая модель определяет процессы, протекающие в системе в терминах состояний, событий и действий. В дальнейшем будем говорить о поведенческой модели отдельного класса. Построение такой модели можно начать с анализа всех сценариев, в которых участвуют объекты-роли данного класса. Проектирование поведения системы (поведения ее классов) на основе сценариев, а не напрямую, позволяет в более наглядном виде представлять общие процессы, протекающие в программном обеспечении, и, отталкиваясь от них, конструировать внутреннее поведение участников этих процессов.

2.4.4.  Статическая модель.

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

В Real в модели классов могут быть следующие виды сущностей:

• класс — описание группы однородных объектов;

• шаблон — параметризованный класс с возможностью получения из него обычного класса подстановкой значений параметров;

• интерфейс — описание правил взаимодействия классов;

• представление — аналог конструкции VIEW языка SQL.

Модель классов Real реализует достаточно полное подмножество модели классов UML. Кроме того, в ней есть интерфейсы и порты из ROOM, при этом последние существенно расширены. Модель классов Real содержит также средства моделирования схемы баз данных.


3.   Реализация прототипа системы реального времени.

3.1.     Жизненный цикл разработки.

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

На диаграмме 1 представлены этапы разработки программной системы. Выполненные в рамках данной работы, выделены чёрным цветом, предполагаемые к исполнению в дальнейшем – серым.

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

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

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

3.2.     Планировщик заданий.

3.2.1.  Выбор алгоритма планирования.

3.2.1.1.    Виды требований РВ, поддерживаемые планировщиком.

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

Следующие ограничения будет возможно задавать с помощью создаваемого планировщика. Они основаны на временном поведении задач.

3.2.1.1.1.      Абсолютные ограничения.

·     Интервал выполнения.

Выражает интервал, предоставляемый задаче для выполнения. Задаётся в микросекундах или как часть интервала выполнения всех задач. Определяет приоритетность определённой задачи на данном этапе вычислений. Может динамически изменяться.

·     Время реакции.

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

·     Время выполнения.

Выражает время выполнения задач в худшем случае. При превышении времени выполнения задача останавливается. В специальный стек «неуложившихся в срок» записывается её идентификатор. Для мягких задач данный параметр не фиксирован. Этот показатель также важен для распределённых (многопроцессорных) систем, где время выполнения задачи может зависеть от узла, на котором она выполняется.

·     Периоды.

Период показывает, как часто задача должна выполняться. Период может ограничивать время реакции задачи, поэтому время реакции предполагается меньшим периода.

3.2.1.1.2.      Относительные ограничения.

Ограничения данного класса также называют локальными. Они выражают то, как две задачи связаны друг с другом.

·     Приоритетные ограничения.

Данные ограничения определяют какие задачи предполагается блокировать при угрозе невыполнения срока данной задачи. В первую очередь блокируются мягкие задачи.

·     Ограничения расстояния.

Определяют  минимальное расстояние во времени между выполнением двух задач.

·     Обновление.

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

 Это может быть необходимо в случае, когда одна задача использует результаты работы другой, и если между ними пройдёт относительно большой промежуток времени, то результаты могут оказаться устаревшими.

·     Гармонические ограничения

Эти ограничения связаны с периодами двух взаимодействующих задач. Они имеют место, например, когда период одной задачи (например, получателя)  зависит от периода  другой (отправителя).

3.2.1.1.3.      Неподдерживаемые ограничения.

·     Отношения.

Данные ограничения выражают максимальный интервал времени между временами завершения двух задач.

·     Разделительные ограничения.

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

3.2.1.2.    Используемые алгоритмы.

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

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

Для динамического перераспределения ресурсов системы будет использована политика управления - round-robin. В этом случае процесс выполняется либо пока выделенный ему квант времени не истечёт, либо пока не будет приостановлен другим процессом с более высоким приоритетом. После того, как время, выделенное для данного процесса, истечёт, активируется следующий готовый к запуску процесс.

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

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

3.2.2.  Описание функционирования приложения.

Схема взаимодействия объектов создаваемой системы показана на диаграмме 10.

3.2.2.1.    Подготовка к запуску планировщика.

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

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

3.2.2.2.    Работа.

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

Таймер получает от планировщика сообщения и создаёт соответствующие метки отсылки сообщений для планировщика. В дальнейшем по достижении метки таймер посылает планировщику сообщение инициировать работу определённой задачи. Если это метка периодической или спорадической задачи, то таймер создаёт через «период» следующую. Планировщик посылает процессам-заданиям сигналы начала кванта времени для выполнения.

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

3.2.2.3.    Управление задачами.

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

·     Добавление задачи.

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

·     Изменение интервала выполнения задачи.

Принимается сообщение об изменении интервала. Если задача, для которой он должен быть измен, активна, то она приостанавливается. Интервал изменяется. Затем цикл вычислений продолжается, начиная с этой задачи.

·     Изменение периода выполнения периодической задачи.

Планировщик принимает сообщение и посылает к процессу-таймеру сигнал на изменение метки времени, соответствующей данной задаче.

·     Изменение времени реакции, времени выполнения или приоритета.

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

·     Удаление задачи.

Задача завершает своё выполнение и посылает планировщику сообщение на удаление её из списка готовых к выполнению. Или планировщик удаляет задачу, вышедшую за пределы выделенного ей времени выполнения.

3.3.     Реализация протокола ARINC A.415 на основе разработанного модуля СРВ.

3.3.1.  Модель требований к системе.

3.3.1.1.    Описательная модель.

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.