Слайды и текст доклада
Pic.1
Занятие 3 Архитектура приложений реального времени Разделы: Архитектура приложений на ведущем и целевом устройствах Многопоточность Режим ожидания (перерыв) Детерминизм Обмен данными между потоками …
Pic.2
Архитектура приложений реального времени
Pic.3
Ведущее приложение Выполняется на компьютере Отвечает за задачи, не требующие детерминизма: Обмен данными с контроллером параметры поступающие в приложение или отображающиеся на интерфейсе …
Pic.4
Приложение реального времени Процессы выполняются с высоким и низким приоритетами. Процесс, который должен быть детерминирован по времени, имеет критический приоритет – все остальные процессы имеют …
Pic.5
Что такое многопоточность? Расширение подхода многозадачности Многозадачность – возможность операционной системы быстро переключаться между выполняемыми задачами Задача это, как правило, целое …
Pic.6
Преимущества многопоточности Разделение между задачами критичными и некритичными по времени. Требования реального времени заставляют операционною систему распределять процессорное время по …
Pic.7
Простая модель многопоточной системы реального времени
Pic.8
Расписание Потоков Циклическое расписание Потоки одинакового приоритета получают одинаковые кванты времени при обработке на центральном процессоре. Может потребоваться несколько кругов (циклов) …
Pic.9
Циклическое расписание
Pic.10
Расписание по приоритетному прерыванию
Pic.11
Расписание LabVIEW Real-Time
Pic.12
Планировщик LabVIEW Real-Time Комбинация циклического расписания и расписания по приоритетному прерыванию. Назначение одного критичного по времени ВП
Pic.15
Режим ожидания Приостановка выполнения VI или потока
Pic.16
Режим ожидания и критический по времени приоритет Следующие особенности уникальны для LabVIEW Real-Time: Если любой критический по времени VI прерывает свое исполнение в режиме ожидания, то весь …
Pic.17
Упражнение 3-1 Работа с приоритетами Время на выполнение: 10 минут.
Pic.18
Упражнение в классе – выбор приоритета
Pic.20
Детерминизм. Оптимизация приложения. Выбирайте подходящие аппаратные средства Избегайте использования ресурсов с общим доступом Избегайте перевыделения памяти Избегайте вызовов subVI в цикле …
Pic.21
Ресурсы с общим доступом Ресурсы с общим доступом в LabVIEW Real-Time - это ресурсы, которые могут быть использованы только одним процессом в один и тот же момент времени Ресурсами с общим доступом …
Pic.22
Ресурсы с общим доступом
Pic.23
Ресурсы с общим доступом -приоритеты
Pic.24
Ресурсы с общим доступом – (subVI) Настройте subVI для поддержки параллельных вызовов
Pic.25
Ресурсы с общим доступом – менеджер памяти Менеджер памяти LabVIEW Real-Time выделяет память автоматически Пользователь не должен явно резервировать или освобождать память Это означает, что менеджер …
Pic.26
Инициализация массивов Избегайте динамического выделения памяти для массивов в цикле с критическим приоритетом.
Pic.27
Ресурсы с общим доступом – управление памятью Ключевые моменты по управлению памятью в системах реального времени: Менеджер памяти LabVIEW Real-Time является ресурсом с общим доступом Все операции по …
Pic.28
Разделяемые ресурсы, do not delete – used for notes
Pic.29
Избегайте конфликтов памяти Резервируемый под массивы участок памяти должен быть по размеру не меньше размера самого большого ожидаемого массива.
Pic.30
Избегайте конфликтов памяти, cont. Do not delete this slide; it is used for the manual notes.
Pic.31
Избегайте вызовов subVI в цикле Каждый вызов subVI приводит к определенным затратам на выполнение служебных операций затраты могут быть значительными при вызове subVI из тела цикла Вместо этого, если …
Pic.32
Отключите ненужные опции Разрешить отладку (Allow debugging) Авто обработка меню при запуске (Auto handle menus at launch)
Pic.33
Избегайте использования Express VI Express VI в LabVIEW просты в использовании и ускоряют разработку Требуют дополнительных ресурсов для вспомогательных операций во время выполнения
Pic.34
Обмен данных между потоками Методы обмена данными между потоками Удовлетворительный: Глобальные переменные Хороший: Функциональные глобальные переменные Отличный: буферы Real-Time (RT FIFO), буферы в …
Pic.35
Глобальные переменные (Global Variables) – Удовлетворительный метод Может приводить к возникновению джиттера, так как представляет собой разделяемый ресурс Может приводить к потере данных – запись в …
Pic.36
Функциональные глобальные переменные (ФГП) – Хороший метод Может иметь несколько входов и выходов Может быть пропущена, если занята (skip if busy) Может приводить к потере данных при передаче
Pic.38
Буферы (Real-Time FIFO) — самый лучший метод Фиксированный размер буфера Предупреждения о потере данных Детерминированная передача данных
Pic.39
Буферы Real-Time FIFO Пример: NI Example Finder Toolkits and Modules»Real-Time»Communication»RT FIFO Communication
Pic.40
Переменные с общим доступом (shared variables) Переменные с общим доступом являются универсальным средством передачи данных: Недетерминированная передача данных межу VI (глобальная переменная) …
Pic.41
Создание и использование переменных с общим доступом Щелкните правой кнопкой мыши на проекте или библиотеке для создание переменной. Переменная должна принадлежать какой-либо библиотеке Диалог Shared …
Pic.42
Переменные и Real-Time FIFOs Вы можете создать переменную, которая использует буфер Real-Time FIFOs для передачи данных. Для этого надо выбрать опцию Enable Real-Time FIFO.
Pic.43
Техника программирования Инициализация Буфер создается в момент первого чтения или записи в переменную Создайте и инициализируйте буфер, записав значение в переменную перед основным циклом Попытка …
Pic.44
Техника программирования Идентификация переполнения (Overflow) и опустошения (Underflow) Переполнение возникает, когда производится попытка записи в буфер, который уже полон. Непрочитанные данные …
Pic.45
Техника программирования Несколько операций считывания и записи Попытка проведения нескольких считываний или записей одновременно приводит к блокированию однотипных операций Попытка проведения …
Pic.46
VI для работы с буферами и переменные с общим доступом
Pic.47
Сравнение статического и динамического конфигурирования. Переменные конфигурируются статически, при помощи окон диалога Простое программирование и подсоединение на блок диаграмме Экономия места на …
Pic.48
Упражнение 3-2 Обмен данными между потоками Время на выполнение: 1 час
Pic.49
Упражнение в классе 3-3 Схема проекта Время на выполнение: 40 мин.
Pic.50
Резюме Какие существуют методы для улучшения детерминизма? Какой метод обмена данными между потоками является лучшим с точки зрения детерминизма? Какой метод обмена данными межу потоками самый …
Pic.51
Резюме — архитектура приложения
Pic.52
Резюме — многопоточность Многопоточность позволяет отделить критические по времени задачи от некритических LabVIEW RT использует комбинированное расписание: циклическое и по приоритетному прерыванию. …
Pic.53
Резюме Методы обмена данными межу потоками: Удовлетворительный: Глобальные Переменные Хороший: Функциональные Глобальные Переменные Отличный: буферы Real-Time FIFO или переменные с общим доступом (с …
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!