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