ЖУРНАЛ «СТА» №3/2007

● первичная обработка прерываний; ● первичная маршрутизация сетевых сообщений; ● обеспечение безопасного взаимодей- ствия между процессами на основе синхронных сообщений и асинхрон- ных уведомлений. За годы разработки небольшое (менее десяти килобайтов) микроядро было тщательно отлажено. Маленький раз- мер микроядра и чётко ограниченный список выполняемых им функций обес- печивают надёжность и защищённость операционной системы в целом. Менеджер процессов, вместе с мик- роядром входящий в единый систем- ный модуль, гарантирует, что ни один процесс в системе не может вторгаться в адресное пространство другого процес- са, а также предоставляет уникальную по эффективности и простоте исполь- зования службу пространства имён, ко- торая позволяет процессам быстро на- ходить друг друга. Однако сам по себе системный модуль никому не нужен. Для решения прик- ладных задач нужны файловые системы, сетевые протоколы, доступ к устрой- ствам и т.д. И здесь скрыта важная осо- бенность ОС РВ QNX — возможность динамически добавлять/удалять любой сервис или аппаратный драйвер. Это да- ёт операционной системе уникальную модульность и наращиваемость, позво- ляет построить как компактную встраи- ваемую, так и сложную распределённую систему. Компоненты, расширяющие сервисы ОС, называют менеджерами вводавывода. Менеджер вводавывода — это прикладная программа, которая при запуске регистрируется в простран- стве имён менеджера процессов и умеет обрабатывать запросы клиентских при- ложений. Если менеджер вводавывода работает с какимлибо аппаратным уст- ройством, то его называют драйвером. Взаимодействие клиентских приложе- ний с менеджерами вводавывода орга- низовано так, как показано на рис. 2. 1. Клиент вызывает библиотечную функцию open(), указывая в аргу- ментах функции имя, зарегистриро- ванное менеджером вводавывода в пространстве имён. При этом менед- жеру процессов будет послано синх- ронное сообщениезапрос, содержа- щее заданное имя. 2. Менеджер процессов в сообще- нииответе передаёт клиенту пара- метры доступа к соответствующему менеджеру вводавывода. Этот ответ содержит, например, идентификатор процесса менеджера вводавывода. 3. Функция open(), используя получен- ные параметры доступа, посылает сообщениезапрос менеджеру вво- давывода. 4. Менеджер вводавывода, исходя из приоритета клиента, текущей загруз- ки, мандатных правил разграничения доступа или исходя из иных критери- ев, принимает решение о том, стоит ли взаимодействовать с данным кли- ентом, возвращает статус (удачно/не- удачно), и функция open() завершает- ся. Дальнейшее взаимодействие меж- ду клиентом и менеджером вводавы- вода осуществляется уже напрямую. Разработка менеджеров вводавыво- да — как чисто программных компо- нентов, так и драйверов — это хорошо налаженная технология. По сути дела, большую часть драйвера программист пишет на основе хорошо документиро- ванного шаблона или каркаса, поэтому основные усилия разработчик может сконцентрировать на аппаратнозави- симой части драйвера. В НЕДРЕНИЯ Рассказывая про ОС QNX, сложнее всего, пожалуй, говорить о внедрениях, и в первую очередь это касается изделия КПДА.0000201. С одной стороны, посе- щая любую выставку, связанную с пере- довыми технологиями автоматизации, вы можете по характерным признакам уз- нать эту операционную систему на мно- гих стендах, представляющих самое раз- нообразное оборудование и программное обеспечение. С другой стороны, факт ис- пользования той или иной операционной системы часто является коммерческой тайной производителей конечных изде- лий—и не только исходя из соображений безопасности, но и в целях сохранения конкурентных преимуществ. Однако ми- ровой опыт достаточно богат примерами построения решений на основе QNX, и среди них немало таких, которые связаны с ответственными или мобильными при- менениями, с системами двойного назна- чения, с использованием в условиях кос- моса, моря и т.д., то есть решений, кото- рые можно рассматривать в качестве отк- рытых аналогов многих военных приме- нений. Приведём некоторые из них: ● система высокоточной обработки трёхмерных видеоизображений ASVS, разрабатываемая компанией Neptec и предназначенная для уда- лённого управления стыковкой кос- мических аппаратов; ● система наблюдения и сигнализации Senstar100 компании SenstarStellar, решающая задачи периметровой ох- раны важных объектов; П Р О Г РАММНО Е ОБ Е С П Е Ч Е НИ Е / СИС Т ЕМЫ Р Е АЛ Ь НО ГО В Р ЕМЕ НИ 83 СТА 3/2007 www.cta.ru Клиент 1 3 2 4 Менеджер ввода вывода Менеджер процессов Рис. 2. Установление соединения клиента с менеджером ввода-вывода Рис. 3. Управление бортовым манипулятором космического корабля «Шаттл» реализовано на основе QNX Рис. 4. Автономно-привязной подводный аппарат TSL Фото предоставлено ИПМТ ДВО РАН

RkJQdWJsaXNoZXIy MTQ4NjUy