Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АИУС.doc
Скачиваний:
124
Добавлен:
07.05.2019
Размер:
15.2 Mб
Скачать

§1.2. Построение информационно-управляющих систем реального времени на базе операционной системы qnx

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

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

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

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

Уникальная эффективность, модульность и простота системы QNX определяется следующими параметрами:

– архитектурой ядра;

– взаимодействием между процессами посредством сообщений.

Архитектура ядра системы QNX

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

Ядро системы QNX

В некоторых системах на ядро возложено такое количество функций, что, по сути дела, оно само является операционной системой.

В системе QNX ядро является действительно ядром. Прежде всего, как и подобает ядру операционной системы реального времени, оно имеет небольшой размер – менее 8 кбайт. На ядро ОС QNX возложено выполнение только двух основных функций:

  1. Передача сообщений – ядро QNX реализует передачу всех сообщений между всеми процессами во всей системе;

  2. Планирование – планировщик является частью ядра и подключается каждый раз, когда процесс меняет свое состояние в результате появления сообщения или прерывания.

В отличие от процессов само ядро никогда не планируется к выполнению. Управление передается ядру только в результате прямого вызова ядра либо из процесса, либо по аппаратному прерыванию.

Системные процессы

Все функции, выполняемые ОС QNX, за исключением функций ядра, реализуются стандартными процессами. В типичной конфигурации системы QNX имеются следующие системные процессы:

  1. администратор процессов (Proc);

  2. администратор файловой системы (Fsys);

  3. администратор устройств (Dev);

  4. сетевой администратор (Net).

Системные процессы и процессы пользователя

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

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

Действительно, грань между ОС и прикладными программами весьма условна. Единственным принципиальным отличием системных процессов от прикладных является то, что системные процессы управляют ресурсами системы, предоставляя их прикладным процессам.

Драйверы устройств

Драйверы устройств – это процессы, которые избавляют ОС от необходимости иметь дело со всеми особенностями работы аппаратного обеспечения.

Поскольку драйверы выполняются как стандартные процессы, то добавление нового драйвера в систему QNX не влияет на работу других компонентов ОС. Единственное изменение, которое происходит в среде QNX – это запуск нового драйвера.

Драйвер может быть оформлен либо как дополнение к системному процессу, либо, для сохранения его «индивидуальности», в качестве стандартного процесса.

Связь между процессами

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

Связь между процессами (interprocess communication – IPC) является ключом к разработке приложений, представляющих собой набор взаимосвязанных процессов, в котором каждый процесс выполняет одну строго определенную функцию.

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

Операционная система с передачей сообщений

QNX стала первой коммерческой ОС данного класса, в которой IPC основан на принципе передачи сообщений. Именно благодаря глобальному использованию передачи сообщений во всей системе, ОС QNX обладает присущей ей мощностью и простотой.

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

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

Механизм передачи сообщений, используемый в QNX, позволяет обеспечить высокую надежность работы приложений.

QNX как сеть

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

Возможности распределенных вычислений в сети Qnet позволяют эффективно выполнять следующие задачи:

  1. использовать удаленную файловую систему,

  2. масштабировать приложения с невероятной легкостью,

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

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

  5. разбивать приложения на несколько процессов, выполняющих разные функции (при этом процессы координируют свою работу с помощью механизма обмена сообщениями),

  6. использовать собственную службу удаленного вызова процедур сети Qnet.

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

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

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

Однокомпьютерная модель

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

Например, управляющие работой устройств ввода/вывода программы, работающие в реальном времени, могут потребовать больше ресурсов, чем другие, менее критичные ко времени, приложения (текстовый процессор). QNX позволяет сконцентрировать вычислительную мощность там, где это необходимо, без ущерба для параллельной обработки данных.

Гибкая сетевая обработка

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

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

Такая высокая степень прозрачности является еще одним примером исключительной мощности архитектуры ОС QNX, основанной на передаче сообщений. Во многих операционных системах такие функции, как сетевая обработка, связь между процессами (IPC) или даже передача сообщений, выполняются не ядром, а надстройкой над ОС. В результате получается интерфейс «двойного стандарта», в котором отдельно организована связь между процессами и совершенно иначе – доступ к закрытому монолитному ядру.

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

На базе сетевой операционной системы реального времени QNX построен специализированный пакет программ для построения АСУ ТП с использованием стандартных вычислительных техник. Базовый пакет Real Flex (средство построения) представляет собой весь необходимый набор средств для создания программного обеспечения средств АСУ ТП.