ОС реального времени QNX и интегрированный комплект разработчика QNX Momentics Александр Трофимов SWD Software Ltd.

Презентация:



Advertisements
Похожие презентации
IDE QNX – практическая работа Трофимов Александр SWD Software.
Advertisements

Аппаратная экосистема QNX: поддерживаемые процессорные платы и стартовые комплекты SWD TimeMaster Эдуард Белохвостиков SWD Software Ltd. Санкт-Петербург.
Модульное лицензирование Александр Варварик SWD Real-Time Systems Конференция QNX Россия сентября, Санкт-Петербург.
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Обзор операционных систем ВОУНБ им. М. Горького «Операционная система - это совокупность программ, обеспечивающих управление процессом обработки информации.
Архитектура операционной системы. Ядро и вспомогательные модули операционной системы При функциональной декомпозиции ОС модули разделяются на две группы:
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Архитектура операционных систем Семестр 2, Лекция 1.
Архитектура операционных систем. Архитектура ОС Состав модулей (компонент) ОС Структура связей между отдельными модулями ОС Принципы взаимодействия модулей.
операционные системы операционные оболочки – интерфейсные системы, драйверы (программы, управляющие работой внешних устройств) утилиты (служебные программы)
Информатика в школе Операционная система. Графический интерфейс. Программное обеспечение.
Технические и программные средства реализации информационных процессов Тема 5-2.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ.
Операционные системы Введение (часть 4) 4.Основы архитектуры операционных систем 4.1.Базовые понятия 4.2.Свойства ОС 4.3.Структура ОС 4.4.Логические функции.
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Системное программное обеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами.
Презентация на тему "Программное обеспечение информационных технологий"
Операционная система Windows XP. Немножко истории Итак, 25 октября 2001 года официально была представлена мировой общественности новая операционная система.
Антивирус Касперского® Personal Pro. Антивирус Касперского® 5.0 Personal Pro Интерфейс пользователя Простой графический интерфейс с минимально необходимым.
Транксрипт:

ОС реального времени QNX и интегрированный комплект разработчика QNX Momentics Александр Трофимов SWD Software Ltd.

ОСРВ QNX

Чем QNX отличается от других ОС? Windows CE, Palm OS Windows NT/2000/XP, UNIX, Linux Embedded Linux AIX, Windows NT/2000/XP с расширениями реального времени VxWorks, pSOS, OS-9 HP-RT Встраиваемые ОС ОС реального времени Платформенные ОС

QNX как ОС жесткого реального времени Параметр \ CPU Pentium II 233 МГц Pentium II 350 МГц PowerPC MTX МГц Время реакции на прерывание, мкс Время постановки потока на выполнение, мкс Время отработки вызова ядра ( sched_yield() ), мкс Переключение контекста между потоками одного процесса, мкс

Микроядерная архитектура Драйверы устройств Стек TCP/IP Файловая система Приложение Пространство ядра Исполнямый модуль реального времени (напр. VxWorks) Монолитное ядро (напр. Linux) Микроядро (напр. QNX Neutrino) Приложение Пространство ядра Пространство пользователя Драйверы устройств Стек TCP/IP Файловая система Приложение Ядро Драйверы устройств Стек TCP/IP Файловая система

Микроядерная архитектура Драйверы устройств Стек TCP/IP Файловая система Приложение Пространство ядра Приложение Пространство ядра Пространство пользователя Драйверы устройств Стек TCP/IP Файловая система Приложение Ядро Драйверы устройств Стек TCP/IP Файловая система Исполнямый модуль реального времени >Защиты памяти нет >Приложения, драйверы и протоколы "живут" в пространстве ядра Монолитное ядро (NT / Unix / и т.п.) >MMU, частичная защита >Защищены только приложения Микроядро (QNX Neutrino) >MMU, полная защита >Защищены приложения, драйверы и протоколы Общий отказ системы Можно восстановить Общий отказ системы Можно восстановить

Межзадачное взаимодействие (IPC) Разделяемая память (большие объемы данных и доступ к оборудованию) Приложение Задачи общаются посредством сообщений … и другие вызовы POSIX realtime signals pipes and POSIX mqueues mutexs, condvars, semaphores barriers, sleepon reader/writer locks Служба именCPM Администратор процессов Управление питанием Протоколы Хранение данных Приложение Микроядро Шина обмена сообщениями Использование сообщений органично "развязывает" задачи Над сообщениями надстроены вызовы POSIX fd = open(/dev/tcpip,,,,) read, write, stat, devctl, … close

Прозрачные распределенные вычисления Среда обмена сообщениями (Ethernet, fabric, …) Файловая система База данных Приложение Микроядро Очереди сообщений Стек протоколов Файловая система Приложение Микроядро Интернет Шина обмена сообщениями Приложения/серверы могут быть распределенными без какого-либо специального кода > Очереди сообщений > Файловые системы > Сервисы > Базы данных > …

CPM: восстановление после сбоев Основа системы высокой готовности – Монитор Ключевых Процессов (CPM). Выполняет мониторинг выбранных компонентов и обеспечивает восстановление после сбоев Процесс-охранник дублирует CPM Клиентская библиотека позволяет компонентам незамедлительно и прозрачно восстанавливать все соединения При обнаружении факта сбоя выполняется группа правил, определяющая способ восстановления освободить ресурсы перезапустить процесс …и т.п. CPM App Guardian CPM Checkpointed State

Critical Process Monitor Microkernel Critical Process Monitor (CPM) CPM GuardianApplication A DriverApplication BDriver 1. Сбой драйвера из-за некорректного обращения с памятью 2. Ядро уведомляет CPM об ошибке 3. Сохраняется отладочная информация о процессе (стандартный core файл) 4. Драйвер выгружается и возвращает ресурсы; уничтожается IPC канал 5. CPM перезапускает новый драйвер 6. Каналы IPC драйвера восстанавливаются клиентской библиотекой CPM 7. Драйвер запрашивает информацию у CPM о своем состоянии в последней контрольной точке и сервис восстанавливается Shared Memory State Information

QNX как встраиваемая и масштабируемая ОС Компактность и неприхотливость умещается в 2Мб ОЗУ и 2Мб флэш-памяти не требует мощного процессора Модульная структура гибко масштабируется сохраняет ключевые свойства даже в минимальных конфигурациях Простота адаптации к оборудованию изящная открытая архитектура драйверов множество примеров в исходных текстах

QNX как платформенная ОС: поддержка POSIX POSIX.1 (IEEE ) – базовый API операционных систем POSIX.1a (IEEE a) – некоторые расширения API POSIX.2 (IEEE ) – набор утилит и командных интерпретаторов POSIX.4 (IEEE b) – расширения для поддержки реального времени POSIX.4a (IEEE c) – интерфейсы потоков, выполняющихся внутри POSIX-процессов POSIX.1b (IEEE d), IEEE j – дополнительные расширения реального времени POSIX.12 (IEEE g) – независимый от протокола интерфейс сокетов

QNX как платформенная ОС: «а что под нее есть?»

QNX и целевая аппаратура Целевые процессоры QNX поддерживает x86, PowerPC, MIPS, SH-4, ARM/StrongARM/Xscale и их производные Пакеты поддержки процессорных плат (BSP) BSP в исходных текстах для QNX Momentics BSP от производителей оборудования Стартовые комплекты содержат все необходимое, чтобы сразу приступить к делу

Adaptive Partitioning Что такое Адаптивная Декомпозиция? Новый продукт QNX, расширяющий ОСРВ QNX Neutrino Позволяет разработчикам создавать безопасные разделы или «партиции» из множества приложения или потоков Разделам гарантируется определенная часть ресурсов CPU на основании простых в использовании бюджетов Почему Адаптивная? Запатентованная технология распределит все ресурсы CPU по разделам исходя из их потребностей – ресурсы CPU используются максимально эффективно Обеспечивает максимальную производительность благодаря рациональному использованию ресурсов процессора, особенно в пиковых ситуациях Простота использования Не требуются изменения при проектировании Та ж модель программирования POSIX, знакомый дизайн, техники программирования и отладки Нет требуются изменения в коде для использования адаптивной декомпозиции

Зачем нужна Adaptive Partitioning? Основанное на приоритетах вытесняющее планирование может гарантировать выполнение приоритетных задач в системах реального времени Как только задача готова к выполнению, она сразу же получает ресурсы процессора С усложнением системы, множество задач борются за ресурсы CPU и становится сложно масштабировать схему приоритетов задач Планирование на основе приоритетов не гарантирует то, что задача будет выполнена в случае, если готова к выполнению более приоритетная задача Без гарантий времени CPU, низкоприоритетные задачи будут находится в состоянии дефицита процессорного времени Это может привести к деградации и даже к общему сбою системы Адаптивная декомпозиция гарантирует минимальное время CPU партициям для обеспечения корректного функционирования системы в периоды сильной загрузки CPU

Максимизация производительности File System Networking Core Application Core Application QNX Neutrino Microkernel Add-On 10% I/O Partition Add-On Device Drivers Core Application CPU Utilization CPU guarantees for partitions at full system load Dynamic allocation of CPU cycles when not fully loaded No idle time Idle time available Partitions Enforced Free time – use idle cycles 70% Application Partition 20% Untrusted Partition

Безопасность Почти все встраиваемые устройства подключены к сети Ненадежные сетевые интерфейсы и угрозы Недоверенное add-on программное обеспечение Если превентивные меры не включены в проект, доступность и безопасность устройств может быть скомпрометирована Возможны атаки отказа в обслуживании (DOS), что отнимет у приложений ресурсы процессора Нет необходимости проверять недоверенные приложения на предмет возможных атак Распределенная DOS атака может загрузить систему обработкой сетевых событий File System Networking Core Application Core Application Add-On Device Drivers Core Application Networking Stack hogging CPU time Rogue add-on stealing CPU time

Безопасность Создайте разделы для защиты критичных системных ресурсов Гарантия ресурсов CPU для базовых функций Наследование партиций гарантирует время CPU всем сервисам ОС (драйвера, файловые системы, сетевая система) Защита основные приложений от угроз –Минимизация влияние вредоносного ПО –Защита от DOS атак File System Networking Stack Core Application Core Application QNX Neutrino micro-kernel Add-On Device Drivers Remote Monitoring 20%5%50%25% Network Attacked Denial of Service Attack Contained Adaptive Partitioning CPU Time Guarantees Rogue add-on thwarted

QNX Neutrino Multi-Core TDK QNX Neutrino Multi-core Technology Development Kit единственная в отрасли полнофункциональная платформа для нового поколения multi-core кристаллов При помощи QNX Neutrino Multi-Core Technology Development Kit вы сможете: Быстро перенести приложения для однопроцессорной архитектуры на любую многопроцессорную архитектуру, значительно сократив при этом время выхода на рынок ваших изделий Быстро разработать надежные, высокопроизводительные продукты для последнего поколения multi-core процессоров Сразу же создавать проекты с возможностью их дальнейшего расширения с dual-core на multi-core кристаллы

Многопроцессорная модель 2 ядра, 2 ОС Одна и та же или разные ОС QNX, Linux, VxWorks, OSE, Integrity CPU OS 2OS 1 AsymmetricSymmetric 2 ядра, одна ОС QNX, Linux Single OS Instance CPU

Asymmetric Asymmetric Model – «ЗА»: Единственный возможный вариант запускать различные ОС CPU может быть назначен на обработку какой-либо задачи Единственный вариант для задач, которые нельзя распараллелить Asymmetric Model – «ПРОТИВ»: Разработчикам необходимо реализовывать распределение и арбитраж ресурсов Никакая из ОС не управляет всеми ресурсами – память, ввод/вывод, прерывания общие Синхронизация между ядрами реализуется сообщениями программного уровня – влияние на производительность Добавление новых ядер может потребовать существенного изменения проекта CPU System Interconnect Cache I/O Memory Controller I/O Shared Memory OS 1 Memory OS 2 Memory OS 2OS 1 Applications Managing shared resources complicates design

Symmetric Symmetric Model – «ЗА»: Хорошо масштабируется. Безшовная поддержка многоядерности без модификации кода Одна ОС владеет и управляет всеми ресурсами, их совместным использованием и арбитражем Динамическая балансировка контролируется механизмом планированием потоков ОС Высокая производительность взаимодействия ядер и потоков с использованием примитивов POSIX Сбор статистики и информации на уровне всей системы с последующей оптимизацией производительности, отладкой и т.д. Symmetric Model – «ПРОТИВ»: Невозможность специально выделить определенный процессор задаче из-за динамической балансировки Приложения с плохой синхронизацией потоков могут некорректно работать в многопроцессорной системе CPU System Interconnect Cache I/O Memory Controller I/O Memory OS Applications

QNX Bound Multiprocessing Лучшее из обоих моделей ОС работает в симметричном режиме с возможностью «привязать» приложения к конкретному ядру Одна ОС имеет полный контроль Ресурсы распределятся ОС, что облегчает проектирование Сбора информации и статистики на уровне всей системы для оптимизации производительности и отладки Высокая производительности Синхронизация приложения между ядрами с использованием примитивов POSIX Высокая скорость обмена сообщениями сообщениями в пределах одного ядра Легко расширяется для варианта с более чем двумя ядрами

QNX Bound Multiprocessing Лучшее из обоих моделей Простота перехода на multi-core Обычное приложение будет работать в multi-core варианте без каких-либо модификаций Нет необходимости проверять или переделывать существующий код для обработки вопросов параллельности Приложения могут работать как полностью симметричном режиме так и в bound режиме на одной системе Контроль разработчиков над приложениями Разработчик имеет полный контроль над тем, на каком ядре будет исполняться тот или иной поток или приложение Можно привязать к определенному ядру на уровне дизайна Можно на программном уровне переводить любое приложение или поток с одного ядра на другое без остановки приложения Динамическая балансировка нагрузки без перезапуска приожения

QNX Bound Multiprocessing CPU System Interconnect Cache I/O Memory Controller I/O Memory OS A2A1A5A3A4 Лучшее из обоих моделей Bound Multiprocessing собирает в себе лучшее из симметричной и ассиметричной моделей Поддерживает существующие и оптимизированные для multi- core приложения Разработчик имеет полный контроль над приложениями Балансировка нагрзки –Как автоматическая на уровне ОС, так и настраиваемая разработчиком –Инструментарий для оптимизации балансировки нагрузки Высокая производительность –Обмен сообщениями и синхронизация потоков на уровне ядра ОС

Комплект разработчика QNX Momentics

QNX - это мощная инструментальная платформа Написание кодаТрансляцияОтладка Оптимизация Система управления версиями Менеджер исходных текстов Текстовый редактор Визуальный редактор Генератор кода Компилятор Интерпретатор Компоновщик Виртуальная машина Отладчик Средства диагностики Профайлер Средства верификации Цикл разработки Комплект разработчика QNX Momentics

Вкратце о QN X Momentics Символьный отладчик Разработчик кода C, C++ Инструменты целевой системы Анализатор ОЗУ Профайлер приложений Построитель конфигураций Системный профайлер Построитель графических приложений Разработчик кода Java Статический анализ UML Управление версиями Редактор кода Пакеты поддержки плат (BSP) Командно- строковой инструментарий GCC v3.3.1 Комплекты разработки драйверов Пакеты исходных текстов IDE Workbench (Eclipse v2.1.2) Инструментальная ОС: Windows, Linux, Solaris, QNX Neutrino Инструментальные ОС Windows, Linux, Solaris, QNX Neutrino Языки программирования C, C++, Java, UML, SDL Целевые процессоры ARM, MIPS, PPC, SH4, XScale, x86 Богатый выбор BSP BSP для многих популярных плат и прототипов Плагины "третьих" сторон Инструменты IDE Другие инструменты Командная строка или графическая IDE IDE работает с командно-строковым инструментарием Доп. инструменты Растущее сообщество Eclipse, объединяющее производителей ПО Покрытие кода

Плагины Momentics Анализатор ОЗУ Обнаружение двойного освобождения, использование нераспределенных блоков, переполнения и утечки памяти Уничтожение/блокирование/отладка/ игнорирование в случае ошибки Системный профайлер Программный "логический анализатор" Анализ событий, полученных от диагностической версии ядра Построитель встраиваемых конфигураций Определение зависимости модулей Сокращение размеров библиотек Photon Application Builder Quickly create Photon apps Drag and drop widgets Разработчик кода C, C++, Java Удобные "мастера" Подсветка синтаксиса, шаблоны кода Символьный отладчик Параллельная отладка нескольких приложений на C, C++, Java Монитор целевых систем Детальная информация о процессах и потоках Профайлер приложений Статистическое прфилирование Подсчет вызовов и отслеживание пар вызовов с графическим представлением Поддерживает разделяемые библиотеки

Компилятор GCC v3.3.1 QNX поддерживает оптимизированный компилятор GCC v3.3.1, обеспечивая совместимость с последними разработками сообщества GNU Двойная реализация дает разработчикам дополнительную возможность выбора (по умолчанию): обратная совместимость (в т.ч. C++) 3.3.1: все преимущества новых функций Совместимость с промышленными стандартами Поддержка стандарта C99 (препроцессирование, проверка формата) Поддержка стандарта ABI (Application Binary Interface) для C++ Улучшенные механизмы генерации кода Улучшенные внутренние механизмы правления памятью Оптимизация на основе профилей Улучшенная производительность препроцессора В среднем на 6-8% быстрее чем у v Оптимизация для процессоров: PowerPC, ARM, SH4, x86, Pentium

QNX IDE: разработчик кода C/C++ Список идентифика- торов позволяет перейти к любой точке в исходном тексте Щелкните два раза, чтобы построить проект для любой платформы Наведите указатель мыши на функцию, чтобы посмотреть ее аргументы и нужные заголовки, или на имя переменной, чтобы увидеть ее тип Закладки и задачи Задание точек останова перед компиляцией Идентификация ошибок и предупреждений компилятора с первого взгляда Идентификация ключевых слов, синтаксиса и парных скобок с первого взгляда Отслеживание всех ошибок и задач из единого списка

QNX IDE: символьный отладчик + анализатор ОЗУ Перейдите к любой точке исходного текста Наведите указатель мыши на имя переменной, чтобы увидеть ее значение Редактируйте исходный текст прямо из отладчика Щелкните здесь, чтобы посмотреть точки останова, переменные, память, регистры, и т.п. Щелкните два раза, чтобы задать точку останова Отслеживайте каждый поток независимо, или наблюдайте передачу управления между потоками Используйте панель инструментов, чтобы запустить/остановить процесс или задать точку останова

QNX IDE: монитор целевых систем Просмотр окружения для каждого процесса Использо- вание процессора и "кучи" процессами Просмотр отношений блокирования Сортировка и анализ потоков по различным атрибутам Использо- вание памяти конкретным процессом Системная информация и использование памяти

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

QNX IDE: анализатор ОЗУ Просмотр динамики изменений в использовании памяти Отслежива- ние операций распределе- ния памяти Просмотр объема свободной и исполь- зуемой памяти – как в общем, так и для конкретных диапазонов Локализация переполнения буферов и запуск отладчика

QNX IDE: анализатор покрытия кода Определяет используемые ветви кода Указывает разработчикам, каким участкам кода уделять внимание для отладки и анализа производительности Упрощает контроль качества, оптимизацию, исправление ошибок и обслуживание Методология контроля качества в военных, автомобильных и медицинских приложениях Инструмент оптимизации в сетевых приложениях Удобно для подразделений обслуживания и исправления ошибок, не участвовавших в разработке кода Интегрированный поддерживаемый компонент, в отличие от компонентов "третьих" сторон, дает клиентам уверенность QSS – единственный производитель, в IDE которого интегрирован инструментарий анализа покрытия кода

QNX IDE: анализатор покрытия кода Просмотр сессии: "живые" результаты бинарного покрытия, вплоть до отдельных функций Отладка: просмотр запущенных прцессов Свойства сессии: быстрая оценка Интегрирован в IDE Интегрирован с редактором кода: графическое представление покрытия непосредственно в исходном тексте

QNX IDE: отчет о покрытии кода Генератор отчетов: Отчеты в формате HTML для дальнейшего анализа, по каждой сессии Статистика для контроля качества

Диагностическая версия ядра Microkernel Диагностическая версия ядра ведет журнал событий, фильтрует их и сохраняет в буферах, содержимое которых можно сохранять и анализировать Смена состояний Прерывания Создание процесса/потока Системные вызовы Системный профайлер События Фильтры "On/Off" Статические фильтры событий Пользовательские фильтры E1E2E3E4E5E6 Буферы событий Сбор данных Файл Сеть

QNX IDE: системный профайлер Новое окно статистики Табличное представление Статистические выборки Активность владельцев событий Всплывающие подсказки Дополнительные сведения (процессор, PID) Текстовые пояснения Улучшенный интерфейс упрощает навигацию Более прозрачен Меньше элементов Поддержка разбиения окон и прокрутки А также… Фильтры пост-обработки переработаны с учетом расширяемости Изменение временного масштаба, выбор нужных процессов, создание нестандартных представлений

Системный профайлер: представление "Активность CPU" Разбиение активности CPU по элементам трассировки % активности CPU от общего времени

QNX IDE: построитель встраиваемых конфигураций Дерево файлов "Мастер" построения

Поддержка русского языка в QNX SWD Cyrillic Pack для QNX6 – полная русификация, включая текстовые консоли

QNX помогает экономить QNX как средство сокращения срока разработки и времени выведения на рынок (TTM) нового продукта QNX и сокращение суммарной стоимости владения (TCO) TCO = Total Cost of Ownership, "суммарная стоимость владения" TTM = Time-To-Market, "время выхода на рынок"

Жизненный цикл продукта Этап презентации Этап роста Этап зрелости Этап спада Время Объем продаж Этап разработки Чем короче, тем лучше Чем длиннее, тем лучше

Как ОС может сократить TTM? Разработка оборудования Разработка ПО Интеграция АО и ПО Освоение инструментария Разработка оборудования Разработка ПО Интеграция АО и ПО Освоение инструментария Время ! Инструментарий Методология Сервисы Инструментарий Методология Встраиваемость Сервисы Распараллеливание Макетные платы Сервисы Инструментарий Методология Переносимый код Готовые решения Распараллеливание Сервисы Выигрыш! Разработка оборудования Разработка ПО Интеграция АО и ПО

QNX как средство сокращения TTM Эффективный инструментарий Интегрированный комплект QNX Momentics Инструментарий "третьих" фирм Стартовые комплекты Прозрачная методология разработки Изящная архитектура Модульная организация Встроенная распределенная сеть Простота адаптации к оборудованию Открытая унифицированная модель драйвера DDK с примерами Доступность исходных текстов Возможность переноса кода из других проектов, в т.ч. из других ОС Полная поддержка POSIX API Модель "клиент/сервер" для сервисов ОС Доступность готовых решений Партнерская сеть QNX Partner Network Простота встраивания Компактность Модульность Профессиональные сервисы SWD Software Ltd. – поддержка, консалтинг, сертифицированное обучение, заказные разработки

Из чего складывается TCO Стоимость инструментария Стоимость обучения Ресурсы на разработку (время, персонал, рабочие места, поддержка, консалтинг и т.п.) Стоимость комплектующих и сборки Стоимость сопровождения Цена продукта Стоимость внедрения (монтаж, пусконаладка, обучение персонала) Стоимость отказов (потери на простоях, ликвидация последствий и т.п.) Стоимость обслуживания (поддержка, профилактика, ремонт, модернизация) Конечный пользователь Разработчик

QNX как средство сокращения TCO Дешевая аппаратура Неприхотливость к ресурсам Стоимость программных компонентов Модульное лицензирование Надежность Надежная архитектура на основе микроядра Все системные модули выполняются вне пределов ядра в защищенных адресных пространствах Использование аппаратного диспетчера памяти Живучесть Поддержка автоматического самовосстановления на уровне отдельных компонентов Поддержка режима высокой готовности (коэффициент готовности % и выше) Дешевизна в обслуживании, диагностике и модернизации Возможность обновления и перезапуска любого программного модуля "на лету" без перезагрузки ОС Поддержка удаленного обновления с использованием защищенных сетевых протоколов Масштабируемость и расширяемость Полностью русифицирована Поддержка удаленного интерфейса пользователя

Небольшое резюме Исследования/ разработка Внедрение/ поддержка Защита памяти SMP Модульность Распределенные вычисления POSIX- совместимость Не надо "пересобирать" ядро Ранняя диагностика ошибок Динамические апгрейды "Встроенные" возможности расширения Решение проблем производительности Масштабируемые системы для ресурсоемких вычислений Параллельная разработка Инкрементное тестирование Апгрейд сервисов без прерывания работы системы Удобная модель разработки Корректное поведение ПО как в локальных, так и в сетевых конфигурациях Доступ ко всем ресурсам системы с одного узла Перенос готового кода Тестирование на недорогом оборудовании Общий интерфейс для настройки и поддержки Архитекторы Разработчики Тестеры Контроль качества Сервисные инженеры Инженеры поддержки Генеральный директор / Владелец продукта Тестирование/ интеграция

QNX и рынок специалистов Знания/навыкиОбщедоступно в POSIX- среде Другие ОСРВ? QNX? Навык пользователя ОСFreeBSD, Solaris, LinuxНетДа Навык администратора ОСFreeBSD, Solaris, LinuxНетДа Знание языков программирования C/C++Да Навык пользователя средств разработки GNU и др. (с открытым исходным текстом) НетДа Навык пользователя прикладных программ GNU и др. (с открытым исходным текстом) НетДа Навык программирования задач реального времени RTLinux?Нет Навык использования специфичного инструментария – Нет

Вопросы? SWD Software Ltd. Официальный дистрибьютор QNX , Санкт-Петербург, пр. Юрия Гагарина 23 тел.: (812) тел.: (812) факс: (812) web: