Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СРВ

.docx
Скачиваний:
0
Добавлен:
07.04.2025
Размер:
13.75 Кб
Скачать

используются несколько стратегий при разработке СРВ

№ Стратегия Краткое описание

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

2 Идентификация активных Идентифицируются источники действий, событий и сообщений

объектов

3 Идентификация сервисов Идентифицируются сущности, которые пассивно обеспечивают сервис, когда тот запрашивается

4 Идентификация объектов реального мира К объектам реальногомира могут относиться, например, газы, давление, силы, механизмы, химикаты

5 Идентификацияфизических устройств Физические устройства включают в себя датчики, приводы и другие электронные устройства системы, которые выполняют функции наблюдения и управления

6 Идентификация ключевых Ключевые концепции могуть быть смоделированы как объекты

концепций

7 Идентификация устойчивой информации Информация, которая является устойчивой в течение значительного интервала времени, может быть объектом или атрибутом объекта

8 Идентификация визуальных элементов Элементы пользовательного интерфейса являются объектами

В качестве СРВ разберем контроллер который управляет лифтом в 10 этажном здании

Контроллер должен управлять лифтом в здании с 10 этажами

Лифт содержит набор кнопок вызова этажа каждая из которых соответствует желаемому этажу. Лифт имеет индикатор текущего этажа над дверью. Лифт имеет кнопку тревоги и Кнопка Пуск/Старт

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

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

Лифт Тайм-аут

Здание Индикатор положение лифта(на этаже)

Этаж Идикатор текщего этажа (в лифте)

Кнопки Подсветка кнопки

запроса

этажа

Кнопка Запрос лифта

вызова

лифта

вверх

Кнопка Шахта

вызова

лифта

вниз

Дверь зажимы

этажа

Дверь лифта Повреждение троса

Датчики Натяжение троса

давления

Оптический Датчик натяжения троса

датчик

Препятсиве

Самые важные объекты в случае управления лифта:

ШахтаЗажимы

Датчик наятжения тросаЛифт

Кнопка Пуск/Старт

Кнопки запроса лифтаКнопка тревоги

Идикатор этажа

Дверь лифта

Этаж

Индикатор положения лифта

Кнопки вызова лифта

Дверь этажа

Датчики препятсвия

Группа обслуживания

Контроллер лифта

Определение отношений между объектами системы

Источники сообщений Получатель сообщения Характер сообщений

Контроллер лифта Лифт Запрос статуса

Лифт Группа обслуживания Статус

Датчик натяжения троса Группа обслуживания Тревога

Датчик натяжения троса Зажимы Захватить

Группа обслуживания Зажимы Отпустить

Кнопка тревоги Группа обслуживания Тревога

Кнопка Пуск/Стоп Лифт Пуск/Стоп

Кнопка Пуск/Стоп Группа объект Пуск/Стоп

Определение атрибутов объектов

Для определения наиболее важных атрибутов объекта в случае, когда это не совсем

1. Каковы функции?

2. Какая информация необходима объекту для выполнения этих функций?

3. Над какой информацией выполняет обеспечивают

Лифт как объекти обладает следующими атрибутами:

1. Состояние движения(двигается, остановлен)

2. Состояние заполнения(занят, свободен)

3. Положение в шахте

4. Направления движения

5. Список запросов

6. Определение классов

В системе лифта могут быть определены следующие классы:

1. Шахта

2. Лифт

3. Контроллер

4. Группа обслуживания

5. Этаж

6. Индикаторы

7. Двери

8. Кнопки

9. Датчики

10. Зажимы

Для первой группы перечисленных классов будет создан единственный экземпляр:

1. Шахта

2. Лифт

3. Контроллер

4. Группа обслуживания

Для второй группы будут отсутствовать классы-наследники:

1. Этаж

2. Идикатор

3. Двери

4. Зажим

Для тетьей группы будут существовать классы-наследникию Диаграммы классов "Кнопки" и "Датчики"

Особенности программирования:

В АСУ РВ для передачи сигналов используются различные интерфейсы:

1) последовательные (РС 232)

В промышленности используется CAN шина

Существует несколько подходов к программированию

Самый распространенный - последовательные алгоритмы.

Помимо детерминированных алгоритмов, существуют вероятностные алгоритмы.

Последовательные алгоритмы не годятся для автоматизации СРВ.

ТК в реальности СРВ содержат в себе множество параллельно исполняемых и взаимодействующих друг с другом процессов. Для последовательных алгоритмов

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

жесткие временные ограничения.

Альтернативой последовательным вычислениям являются параллельные и распределенные вычислениям. Когда говорим про паралелльные вычисления, то имеется в виду разделяемый

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

Отличия программ между реального времени и последовательными программами:

1) Логика исполнения программы определяется внешними событиями.

2) Логика развития программы явно зависит от времени.

3) Программа может работать не только с данными, но и с сигналами

4) Программе приходится работать в условиях временных ограничений

5) Скорость работы программы реального времени должна быть адеквата регулируемому объекту

6) Результат выполнения программы зависит от общего состояния системы и его нельзя предсказать заранее

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

заканчивается с исчперпанием входных данных.

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

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

23.09.2023

Процессы, потоки и задача

Рассмотрим процесс с точки зрения ОС Android. В этой системе процесс и приложения не являются тесно связанными сущностями: т.е. программы для Android могут выглядить

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

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

состояние во время которого процесс обладает всеми необходимыми ему ресурсами, в этом состоянии процесс непосредственно выполняется процессором. Ожидание - пассивное

состояние во время которого процесс заблокирован и не может быть выполнен(ожидание ввода данных или освобождение нужного устройства). Готовность - пассивное состояние,

процесс тоже заблокирован, но не по внутренним причинам, а по внешним, зависящим от процесса.

Более сложная модель процесса включает в себя 5 состояний, к нашим имеющимся добавляются 2 состоянии(рождение и смерть). Рождение процесса - это пассивное состояние,

когда самого процесса ещё нет, но уже готова структура для его появления. Смерть процесса - самого процесса уже нет, но может случится, что его место, т.е. структура

данных, осталась в списке процессов, такие процессы называются зомби.

Выполнение

||

Готовность

^

|

рождение

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

Операции над процессами

1) Создание процесса - переход из состояния рождения в состяние готовности

2) Уничтожение процесса - переход из состояния выполнения в состояние смерть.

3) Восстановление процесса - из готовности в выполнение

4) Изменение приоритета процесса - из выполнения в готовность

5) Блокировка процессов - из выпролнения в ожидание

6) Пробуждение процесса - из ожидания в готовность

Для создания процесса, ОС необходимо выполнить след. действия:

1) Присвоить процессу имя

2) Добавить информацию о процессе в список процессов

3) Определить приоритет процесса

4) Сформировать блок управления процессом

5) Предоставить процессу необходимые ресурсы

Функции выполняемые разными задачами:

1) Связанные задачи

2) Необходимо упорядочить доступ нескольких задач к разделяемому ресурсу.

3) Необходима синхронизация задачи с внешними событиями, как правило для этого используется механизм прерывания

4) Необходима синхронизация задачи по времени

Связанные задачи

Способы пердачи сообщений между процессами:

самый медленный по объему — сигнальный, характерно при распределенной передаче информации.

Канальный — COW(cluster of workstations)

Самый быстрый способ обменом сообщениями — когда используется разделяемая память.

ДЗ: Микроволновка

Сообщения могут быть асинхронными и синхронными.

Общие ресурсы:

Ресурс

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

Семафор

Используется для синхронизации доступа к ресурсам. Коллизии, которые могут возникать к конкурентным ресурсам:

1) Deadlock(смертельный захват) — зависание/зацикливание, в качестве причины зависания, мб ситуация, когда задачи не могут поделить общие ресурсы.

2) Инверсия приоритетов

3) Синхронизация с внешними событиями

Требования предъявляемые к ОС РВ

До недавнего времени для задач автоматизации использовались такие компактные ОС, на микроядерной архитектуре, как VXWORx, OS-9, PSOS, QNX, LynxOS.

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

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

Существует такое понятие как стандарт POSIX.:

1) Желательно, чтобы ОС следовали этому стандарту

2) Желательно, чтобы ядро этой ОС было относительно компактно

3) В частности, желательно, чтобы ОС РВ можно было масштабировать в очень широком диапазоне.

4) Желательно поддержка мультипроцессорности

Для СРВ желательно наличие низкоуровневых средств для доступа к аппаратным ресурсам.

Желательна поддержка микроядерной архитектуры.

Linux РВ может работать на самых разных платформах.(SeliqonGraphics, IBM, Intell, Motorolla), кроме того Linux РВ можно использовать в различного рода контроллерах. Он занимает очень мало места(от 2 МБ). В некоторой степени к ОС РВ можно отнести Windows LT.

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

Механизмы синхронизации нитей должны быть предсказуемыми.

ОС QNX, относится к категории Unix подобных ОС.

У QNX и Unix-подобных ОС похожий пользовательский интерфейс и API. В частности это удобно для пользователей. В QNX практически такой же набор стандартных утилит, как и у Unix, поддерживается GNU. Такие сервисы, как Apach и Mazay. QNX – 1 коммерческая ОС, построенная на принципах микроядра и обмена сообщениями. Эта ОС реализована в виде независимых процессов, которые взаимодействуют друг с другом с помощью сообщений.

+:

1) предсказуемость, позволяет её использовать в задачах жесткого РВ. QNX > UNIX

2) масштабируемость и эффективность достигаются за счет оптимального использования ресурсов. → в частности её можно использовать во встраиваемых системах

3) расширяемость и надежность. Её драйверы не компилируются непосредственно в ядре

4) У этой ОС есть быстрый сетевой протокол, который наз-ся FLEET, он позволяет обеспечить отказоустойчивость

5) Есть хорошая графическая подсистема

- :

1) Нет поддержи симметричной мультипроцессорной обработки

2) Нити поддерживаются нестандартным и неэффективным образом.

ОС Neutrino

Очень маленькая и очень быстрая ОС и в ней устранены большинство проблем в QNX. Минимальный размер ОЗУ для встраиваемых систем от 64 — 512 КБ. Neutrino в отличии от QNX очень хорошо соответствует стандарту POSIX, особенно в плане масштабируемости.

Преимущества, которое дает совместимость со стандартным Posix:

1) Переносимость кода, и возможность использовать уже наработанного ПО

2) Независимость приложений от используемого процессора и ОС.

3) ОС Neutrino может работать на широком спектре процессоров

4) Переносимость средств разработки и наличие достаточного количества квалифицированных разработчиков для Posix API.

4) Близость posix и unix дает возможность совмещений систем разработки, что позволяет разрабатывать (интеграция сверху — вниз)

Правительственные органы некоторых стран совместимость со стандартным Posix очень важным.

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

Библиотека simpy – среда моделирования основанная на процессах. В этой библиотеке есть генератор, с помощью которого можно моделировать различные процесса(). В реальном мире обычно мы имеем дело с неким ограниченным ресурсом(). Ограниченным ресурсом может быть время, топливо, люди. Можно моделировать движение транспорта по мостам, тоннелям, перекресткам. Есть программа моделирующая работу АЗС, обслуживание клиентов в ресторане. Очень важными элементами программ написанных с помощью библиотеки SimPy является среда — environment и некие дискретные временные кванты.

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

Важным типом событий является тайм-аут. Они позволяют перейти процессу в режим сна или удерживаться в своем состоянии в заданном времени.

Соседние файлы в предмете Системы реального времени