Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Филинков_Денис_ИСТ-73_1.5см.docx
Скачиваний:
20
Добавлен:
25.09.2019
Размер:
1.24 Mб
Скачать

3.8.5 Сокращение повторных трудозатрат.

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

Операционная система реального времени QNX Neutrino решает эту проблему несколькими способами. Во-первых, QNX Neutrino принадлежит к числу развитых операционных систем с большим количеством пользователей и поддерживает многочисленные драйверы стандартных устройств. Как было сказано, все драйверы в ОС QNX Neutrino работают в пользовательском пространстве, а, следовательно, их можно разрабатывать с помощью стандартных инструментов и методов создания исходного кода. Эта задача дополнительно упрощается благодаря комплектам разработки драйверов компании QNX, в состав которых входит документация, библиотеки, заголовочные файлы и исходный код, на основе которого можно создавать различные драйверы [9].

3.8.6 Дополнительные службы микроядра.

Поскольку QNX Neutrino является микроядерной операционной системой предназначенной специально для встраиваемых систем, в её состав входят службы, которые отсутствуют как в стандартной ОС Linux, так и в расширениях реального времени для Linux [9]. Эти службы описаны в следующих разделах.

3.8.7 Развитая поддержка многопроцессорной обработки для многоядерных процессоров.

В операционной системе реального времени QNX Neutrino с самого начала были заложены возможности многопроцессорной обработки. В 1997 году компания QNX вывела на рынок технологию симметричной многопроцессорности (symmetric multiprocessing — SMP) и занималась её развитием на протяжении последнего десятилетия. Недавно компания QNX представила инновационную технологию исключительной многопроцессорности (bound multiprocessing — BMP). Исключительная многопроцессорность позволяет выполнять существующие приложения на многоядерных процессорах без изменений и в то же время даёт возможность приложениям, допускающим распараллеливание, выполняться в полноценном SMP-режиме, тем самым обеспечивая максимальную масштабируемость. Исключительная многопроцессорность позволяет привязать существующее приложение и все его потоки к одному ядру, что обеспечивает корректность функционирования приложения, даже если в нём применяются методы синхронизации потоков, неподходящие для работы в многоядерной среде [9].

Интегрированная среда разработки QNX Momentics® IDE, основанная на стандартах Eclipse, также включает в себя возможности многопроцессорной обработки и обеспечивает инструменты визуализации для анализа, отладки и оптимизации многоядерных систем (рис. 3.4) [7]. В отличие от традиционных инструментов, инструменты среды QNX Momentics IDE отображают действия, которые выполняются во всей многоядерной системе, что позволяет разработчикам выявлять потенциальные возможности для параллельной обработки, снижать количество необязательных перемещений потоков между ядрами, исключать дорогостоящее межпроцессное взаимодействие между ядрами и локализовывать сложные проблемы конкуренции за ресурсы, часто возникающие в многоядерных системах. Представление всей системы, которое обеспечивается инструментами среды QNX Momentics IDE, в сочетании с развитыми возможностями многопроцессорной обработки операционной системы QNX Neutrino способно значительно сократить трудозатраты, требующиеся для перехода от одноядерных сред к многоядерным.

Рисунок 3.4 - Cистемный профайлер комплекта разработчика QNX Momentics

Cистемный профайлер комплекта разработчика QNX Momentics позволяет разработчикам визуализировать сложное поведение многоядерных систем и концентрировать усилия на тех областях, которые обеспечивают максимальный параллелизм и производительность [9].