1 / 42

ПРОГРАММНО- ИНСТРУМЕНТАЛЬНАЯ ПЛАТФОРМА QNX6

ПРОГРАММНО- ИНСТРУМЕНТАЛЬНАЯ ПЛАТФОРМА QNX6. А. Астапкович. ВСТРОЕННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ. Лекция 9. Государственный университет аэрокосмического приборостроения, СПб, 201 2. Встроенные системы управления. ПЛАТФОРМА QNX. История QNX.

baba
Download Presentation

ПРОГРАММНО- ИНСТРУМЕНТАЛЬНАЯ ПЛАТФОРМА QNX6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ПРОГРАММНО- ИНСТРУМЕНТАЛЬНАЯ ПЛАТФОРМАQNX6 А.Астапкович ВСТРОЕННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ Лекция 9 Государственный университет аэрокосмического приборостроения, СПб, 2012

  2. Встроенные системы управления ПЛАТФОРМА QNX

  3. История QNX • Операционная система QNX имеет многолетнюю историю . • Изначально это многозадачная , многопользовательская, многоконсольная • ОСРВ с микроядерной структурой. • В настоящее время на практике используются две версии • программно-инструментальных платформ: • QNX4 для систем управления с централизованной структурой (ОСРВ QNX4.X) • QNX6 для систем управления с распределенной структурой (ОСРВ Neutrino) .

  4. Концепция NEUTRINO Глобальной целью проекта Neutrino было создание универсальной, развиваемой, масштабируемой и ОСРВ. Эта операционная система должна была быть пригодной для построения систем реального времени на самом широком спектре реализаций аппаратной компоненты, начиная с одноядерных автономных устройств и до сетевых систем управления на базе многоядерных процессоров, как уже выпускаемых, так и новых модификаций. • Платформа QNX6 включает в себя: • операционную систему реального времени QNX Neutrino; • программно-инструментальную среду QNX Momentics, • реализованную на базе IDE Eclipse; • пакеты программного обеспечения промежуточного слоя QNX Aviage.

  5. Базовые стандарты Реализация базовых компонент микроядра Neutrino соответствует стандартам : POSIX 1003.1, 1003.1a 1003.1b Realtime 1003.1c Threads 1003.1d Realtime Extensions 1003.13 Realtime Profile Support Стандарты семейства POSIX 1003.1 используют модель операционной системы с возможностью выполнения многих процессов в квазипараллельном режиме. При этом предполагается, что каждый процесс имеет свою, защищенную память, недоступную для компонентов другого потока (стандарт ARINC-653).

  6. A –адресное пространство Компонент (подпрограмма, функция) OC T – временные слоты Thread(нить) Определение “ Нить это компонент в процессе исполнения” наиболее адекватно смыслу, но слово процесс уже занято ! • Нить (thread) является синонимом потока • В литературе ( переводной) используют оба термина

  7. A-адресное пространство OC Нити (прикладные задачи) Tc T-время Потоки (нити) Алгоритм функционирования многоканальной системы реального времени представляет собой некоторое множество взаимодействующих нитей (потоков) и процессов. Реализация компонентов осуществляется под управлением базовой сущности называемой нитью (thread). Понятие нить введено в стандарте POSIX, и оно представляет собой компонент в стадии реализации. . При диспетчеризации FIFO потоку предоставляется процессор на столько, сколько ему необходимо • Совокупность нитей образует процесс, который должен иметь хотя бы одну нить.

  8. A-адресное пространство OC Процесс 1 Процесс 2 T-время Процессы • Совокупность нитей образует процесс, который должен иметь хотя бы одну нить. Количество нитей в процессе может варьироваться. • Процесс обладает собственным защищенным адресным пространством Нити Нити • Процессы могут реализовываться, как на одном аппаратном модуле, так и • на системе модулей, объединенных в сеть

  9. Концепция декомпозиции Наличие механизма процессов с технологической точки зрения разработки ПО обеспечивает : Возможность единообразного способа декомпозиции задачи на модули Параллельную разработку (отладку ) модулей с минимизацией проблем при интеграции системы Увеличение качества конечного продукта за счет увеличения количества ошибок и облегчения организации сопровождения

  10. Встроенные системы управления Состав платформы QNX6

  11. Трансляция или компиляция кода, сборка кода Описание алгоритма cредствамиIDE: объекты ОСРВ, компоненты Прошивка кода в макет устройства или в опытный образец Корректировка описания алгоритма, модификация алгоритма Отладка с использованием симулятора Отладка с использованием внутрисхемного эмулятора Интегрированные программно-инструментальные среды (IDE) Integrated Development Environment (IDE) – специализированный аппаратно-программный комплекс для разработки систем управления встраиваемого класса. Совокупность возможных реализаций IDE образует платформу поддержки разработки.

  12. ИНСТРУМЕНТАЛЬНЫЙ КОМПЬЮТЕР С OC: WINDOWS, SOLARIS, QNX NEUTRINO Инструментарий для разработки кода приложения на языках C/C++, JAVA Монитор целевых систем Символьный отладчик РАБОЧЕЕ ПРОСТРАНСТВO IDE (на базе ECLIPSE) Профайлер приложений Построитель приложений PHOTON Системный профайлер Последовательный коммуникационный канал ETHERNET АППАРАТНАЯ СОСТАВЛЯЮЩАЯ РАЗРАБАТЫВАЕМОЙ СИСТЕМЫ Структура платформы QNX6

  13. Аппаратная компонента • Платформа обеспечивает возможность разработки программного обеспечения для систем управления, реализуемых на базе микропроцессоров: • Intel x8, AMD - CISC архитектурафирмы INTEL; • MIPS - RISC архитектурафирмы MIPS Technologies; • ARM, StrongARM- RISC архитектурафирмы Advance Risc Machine; • SH-4 - RISC архитектурафирмы Renesas; • PowerPC - RISC архитектурафирмы IBM. • При этом обеспечивается поддержка наиболее распространенных шин: • ISA, PCI, VME,STD, STD 32 и PC/104.

  14. Встроенные системы управления Концепция ОСРВ Neutrino Рекомендуемая литература: Роберт Кртен.Введение в QNX Neutrino 2-е изд.,2011

  15. Микроядерная архитектура • Концепция построения ОСРВ Neutrino : • использование микроядерной архитектуры; • модульная организация системы; • информационный обмен между процессами посредством сообщений; • поддержка платформенного подхода.

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

  17. Защита памяти Для защиты памяти Neutrino имеет в своем составе опционально подключаемый компонент управления памятью (Memory Management Unit – MMU). Этот компонент обеспечивает работу с таблицами описания распределения памяти между процессами. Эти таблицы используются аппаратным модулем микропроцессора, для анализа корректности выполняемых действий. Обычно MMU делит память на страницы по 4 кБайта.

  18. Программный сторожевой таймер Защита памяти реализуется аппаратными средствами и блокирует возможность несанкционированного доступа к памяти. Как правило, такие ситуации возникают из-за ошибок в разрабатываемом программном обеспечении. Процесс, компонент которого попытался изменить память другого процесса, блокируется и возникшая ситуация протоколируется, что обеспечивает разработчикам возможность анализа возникшей ситуации. Реализация этой возможности, получившей название программный сторожевой таймер, обеспечивает ряд возможностей, существенно облегчающих отладку. Следует подчеркнуть, что эта возможность существенно облегчает анализ сбойных ситуаций при опытной и штатной эксплуатации системы, когда на передний план выходят перемежающиеся отказы для плохо детерминированных условий эксплуатации.

  19. Встроенные системы управления МИКРОЯДРО NEUTRINO

  20. Системные вызовы Объекты микроядра Микроядро Объекты микроядра Описание алгоритма управления представляет собой программу на языке высокого уровня (C,JAVA) написанную в соответствии с набором правил QNX6. Программа пишется с использованием пользовательских функций, учитывающих специфику реализуемого алгоритма управления, и системных функций из библиотек QNX6. Системные функции обеспечивают работу с базовыми объектамимикроядра Объекты микроядра Neutrino .

  21. Идентификация потоков Как правило нити (потоки) конкретного приложения требуют информационного обмена между собой Способ обмена определяет конечные результаты обработки информации (реализацию предписанного алгоритма управления), так как это влияет напрямую на временную структуру реализуемого алгоритма. Соответственно, помимо нитей в набор объектов микроядра входят компоненты, обеспечивающих информационное взаимодействие нитей между собой в процессе выполнения: connection, channel, pulse. С одной стороны потоки используют общее адресное пространство своего процесса, а с другой, имеют собственные данные, которые обеспечивают идентификацию потоков при информационных обменах. Эти данные называются атрибутами потока.

  22. Атрибуты потока Количество потоков внутри процесса может динамически меняться в процессе исполнения. Создание потока осуществляется посредством вызова функции pthread create() , которая выделяет и инициализирует все необходимые потоку ресурсы внутри адресного пространства процесса. После успешного завершения этих операций производится постановка потока в очередь на выполнение.

  23. Состояния потока READY – поток ожидает ресурса для выполнения пока процессор исполняет другу нить с большим или равным приоритетом RUNNING- компонент выполняется процессором SIGSUSPEND – выполнение приостановлено до получения сигнала INTERRUPT– поток блокирован и ожидает сигнала прерывания DEAD – выполнение завершено и поток ожидает присоединения к другому потоку

  24. Диспетчеризация потоков Диспетчеризация потоков осуществляется автономно, без учета состояния своего и других процессов. Потоки, готовые к исполнению образуют очереди, упорядоченные в соответствии с приоритетами. Список дисциплин традиционен для QNX : FIFO, RR и адаптивная. С этой точки зрения, поток может находится в трех состояниях : выполнения, быть вытесненным другим потоком с большим приоритетом или быть заблокированным. В работающей системе приоритет потока может изменяться либо путем прямой манипуляции, либо средствами микроядра при получении им сообщения от потока с большим приоритетом.

  25. Информационное взаимодействие процесов в Neutrino

  26. Информационное взаимодействие Поддержка модели потоков подразумевает возможность использования общих данных для реализации своих компонент. Иерархия способов обмена двухуровневая. Она включает в себя обмены внутри процесса и обмены информацией нитями из разных процессов. Ключевая особенность Neutrino - обмен посредством сообщениями между процессами (Inter Process Communication, IPC). Обмен сообщениями по сути дела является тем клеем, который связывает модули Neutrino и прикладные компоненты в единое целое и призван обеспечить универсальность этой операционной системы.

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

  28. Cоединение (Connection) ConnectAttach() Канал (Channel) ChannelCreate() ПРОЦЕСС SERVER_1 ПРОЦЕСС CLIENT ПОТОК_ 1 ПОТОК_ 1 ПОТОК_ 2 ПОТОК_ 2 ПОТОК_ M ПОТОК_ K Механизм реализации IPC Передаваемые сообщения адресуются не посредством указания адреса нити получателя и адреса нити отправителя, а путем предварительного создания описания каналов и соединений. Поток, который ожидает сообщения, должна создать канал для его передачи. Поток, которому требуется послать сообщение должна сначала установить соединение путем подключения к каналу. Эти операции выполняются путем вызова соответствующих системных функций ChannelCreate()и ConnectAttach(). У этих функций есть антиподыChannelDestroy()и ConnectDetach().После установления соединения процесс клиент может посылать сообщения, пользуясь системной функцией MsgSend().

  29. Синхронизация обменов • В общих чертах это осуществляется следующим образом: • текущее состояние процесса описывается соответствующей переменной; • посылка сообщения, ожидание и прием сообщения соответствующим • образом меняют текущее состояние процесса; • поток, вызвавший вызов системной функции MsgSend()для отправки сообщения другому потоку, который может находится внутри другого процесса, будет блокирован до тех пор, пока поток адресант сообщения не выполнит вызова системной функции MsgReceive(), обработает полученное сообщение и не выполнит вызова системной функции MsgReply().

  30. ОБРАБОТКА ПРЕРЫВАНИЙ

  31. Механизм обработки прерываний В Neutrino при появлении сигнала прерывания от аппаратного модуля, управление передается на уровень микроядра, которое осуществляет подготовительные работы по запуску обработчика прерываний, реализуемых пользовательским компонентом. В одноканальном приближении ключевым параметром является время реакции на событие (interrupt latency) представляющее временной интервал между появлением сигнала прерывания и началом выполнения первой команды соответствующего обработчика прерываний. Это время относительно невелико. Однако, оно может существенно возрасти, если система прерываний будет заблокирована, например, каким-либо системным процессом.

  32. Задержка диспетчеризации Обработка прерываний осуществляется запуском диспетчером потока (нити) обработчика соответствующего прерываний, обладающим высоким приоритетом. Таким образом, содержательная реакция на сигнал прерывания последует лишь после начала выполнения этой нити. Для определения задержки при таком варианте обработки прерываний введена характеристика, называемая задержка диспетчеризации(scheduling latency). • Задержка диспетчеризации определяется, как временной интервал между • моментом исполнения последней инструкции обработчика прерываний, • фиксирующего появление аппаратного прерывания, и началом выполнения • первой команды нити драйвера, обрабатывающей это прерывание.

  33. Системный таймер Системные функции clock(), timer(), synch() используются для отслеживания времени суток и измерения длительности временных интервалов. С помощью этих функций Neutrino обеспечивает возможность синхронизации часов между несколькими системами. Приложение, запрашивающее сервис, нуждающийся в тайм-ауте, запрашивает у микроядра автоматический запуск таймера в случае перехода приложения в определенное состояние. Запуск таймера и запрос сервиса в этом случае реализуются как атомарная операция, исключающая неоднозначность.

  34. Инструментальная среда QNX Momentics

  35. Философия подхода Neutrino разрабатывалась с учетом необходимости обеспечить ее удобную интеграцию в программно-инструментальные платформы. Пара базовых элементов Neutrino микроядро и менеджер процессов (Process Manager)называется procnto. Блок procnto поставляется в двух модификациях, одна из которых предназначена для использования в процессе отладки. Эта инструментальная версия называется proconto-instr и обладает широким наборов средств для трассировки и мониторинга состояния разрабатываемой системы управления в процессе исполнения разрабатываемого кода.

  36. История развития QNX6 имеет в своем составе компонент Photon, предназначенный для обеспечения графического интерфейса (Graphic User Interface – GUI). Его реализация базируется на механизме обмена сообщениями. Этот интерфейс ориентирован на использование оконных интерфейсов Windows и Unix, с которыми он связывается посредством использования удаленного пользовательского интерфейса (Remote User Interface – RUI). Разработка этой оболочки велась одновременно с разработкой Neutrino. • В настоящее время для разработки c Neutrino начинает • широко использоваться IDE QNX Momentics.

  37. ПРИНЦИПЫ РЕАЛИЗАЦИИ Программно-инструментальная среда QNX Momenticsпредставляет собой унифицированную среду для разработки многокомпонентных и разнородных систем управления. QNX Momentics состоит из ядра Eclipse, к которому подключены специализированные QNX расширения. Eclipse представляет собой универсальную расширяемую платформу, обеспечивающую возможность создания и поддержки специализированных сред поддержки разработки, путем объединении компонент IDE. Архитектура и способ реализации Eclipse ( язык JAVA ) обеспечивают его Переносимость и расширяемость.

  38. Символьный отладчик Momentics • Символьный отладчик Momentics обеспечивает возможность: • одновременно отлаживать несколько приложений, написанных на C, C++ и/или Java; • отлаживать многопоточные приложения, контролируя каждый поток по отдельности • и отслеживая передачу управления между ними; • отлаживать несколько процессов, выполняющихся одновременно на • микропроцессорах с различными архитектурами ; • динамически подключаться отладчиком к любому выполняющемуся процессу; • проводить анализ дамп-файлов при аварийном завершении отладочного теста.

  39. ОКОННЫЙ ИНТЕРФЕЙС

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

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

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

More Related