Операционная система реального времени QNX
3.1 Операционная система QNX
QNX - операционная система реального времени, разработанная специально для высокоответственных приложений, бесперебойно функционирующих годами. Надёжность QNX обеспечивается её архитектурой - это настоящая операционная система на основе микроядра. В QNX ядром обрабатываются только базовые примитивы ОС (сигналы, таймеры, планирование). Все остальные компоненты: драйверы, файловые системы, стеки протоколов, прикладные приложения - выполняются вне пределов ядра как отдельные процессы, каждый в своём защищённом адресном пространстве. Такой подход автоматически обеспечивает системам на основе QNX «встроенную» отказоустойчивость. Все компоненты QNX используют для общения друг с другом единый, чётко детерминированный механизм - обмен сообщениями. Он образует между компонентами системы виртуальную «программную шину», позволяющую подключать к ней или, наоборот, отключать любой компонент «на лету». Сообщения могут свободно передаваться между узлами вычислительной сети, предоставляя прозрачный доступ к любому ресурсу, где бы он ни находился.
Использование QNX позволяет:
создавать системы, способные к самовосстановлению - в QNX любой компонент в случае отказа может быть перезапущен динамически, не нарушая работу микроядра и других компонентов. Например, если драйвер попытается обратиться к памяти за пределами своего адресного пространства (что для большинства ОС является фатальной ошибкой), QNX корректно завершит этот драйвер и освободит все занятые им ресурсы; использовать одну и ту же ОС во всей своей линейке программных продуктов - благодаря исключительной модульности QNX любые уже испытанные и проверенные компоненты: драйверы, приложения, дополнительные сервисы ОС - могут использоваться повторно в других продуктах. Фактически универсальный набор бинарных модулей может применяться как в однопроцессорном устройстве, так и в SMP_системе, и в вычислительном кластере; производить обновление системного программного обеспечения без остановки работы конечного устройства - поскольку любой компонент в QNX может быть добавлен или удалён динамически, система может продолжать работать даже в процессе замены или добавления в неё новых приложений, драйверов или стеков протоколов.
3.2 Архитектура ядра системы QNX
Система QNX состоит из небольшого ядра (микроядра) и набора взаимодействующих процессов. Как показано на рис. 1, система не имеет иерархической структуры, ее организация скорее напоминает "спортивную команду", в которой игроки (процессы), имеющие равную значимость, взаимодействуют друг с другом и со своим "ведущим игроком" (ядром).
Рис. 1
Ядро системы QNX
Ядро является "сердцем" любой операционной системы. В некоторых системах на ядро возложено такое количество функций, что, по сути дела, оно само является полной операционной системой. В системе QNX ядро является действительно ядром. Прежде всего, как и подобает ядру операционной системы реального времени, оно имеет небольшой размер_-_менее 8 Кбайт. На ядро системы QNX возложено выполнение только двух основных функций: · передача сообщений (ядро реализует передачу всех сообщений между всеми процессами во всей системе); · планирование (планировщик является частью ядра и подключается каждый раз, когда процесс меняет свое состояние в результате появления сообщения или прерывания). В отличие от процессов само ядро никогда не планируется к выполнению. Управление передается ядру только в результате прямого вызова ядра либо из процесса, либо по аппаратному прерыванию.
Системные процессы Все функции, выполняемые операционной системой QNX, за исключением функций ядра, реализуются стандартными процессами. В типичной конфигурации системы QNX имеются следующие системные процессы: · Администратор процессов (Proc); · Администратор файловой системы (Fsys); · Администратор устройств (Dev); · Сетевой администратор (Net).
Микроядро
Ядро операционной системы QNX, представленное на рис. 2, выполняет следующие функции: · связь между процессами (IPC). Ядро обеспечивает три формы IPC (сообщения, proxy (прокси) и сигналы); · сетевое взаимодействие нижнего уровня. Ядро передает все сообщения, предназначенные процессам на другом узле; · планирование процессов. Планировщик ядра определяет, какой процесс будет выполняться следующим; · первичную обработку прерываний. Все прерывания и сбои аппаратного обеспечения сначала обрабатываются в ядре, а затем передаются соответствующему драйверу или системному администратору.
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (254)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |