Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ QNX6_часть 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
275.46 Кб
Скачать

40

Лекция 4

Загальна характеристика ОС РЧ QNX 6. Структура і концепція ОС РЧ QNX 6.

QNX6

ОСРВ изначально разрабатывалась как POSIX-совместимая ОС, позволяющая создавать целевые системы, соответствующие любому из четырех профилей прикладного контекста реального времени. Термины, используемые в документации, поставляемой с QNX, соответствуют терминологии стандартов POSIX.

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

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

Концепция QNX

QNX базируется на двух фундаментальных принципах:

  • архитектура на основе микроядра;

  • связь между процессами на основе сообщений.

QNX NEUTRINO RTOS v6.2 имеет клиент - серверную архитектуру, состоящую из микроядра и сгруппированных вокруг него взаимодействующих процессов. Микроядро включает в себя только сервисы ядра, такие как нити, сигналы, передача сообщений, синхронизация, планирование заданий и таймер. Микроядро само по себе не подвергается планировке. Его код выполняется только в результате вызова ядра или возникновения аппаратного прерывания.

Дополнительные функциональные возможности осуществляются взаимодействующими процессами, которые действуют как серверные процессы и отвечают на запросы процессов клиентов (например, прикладного процесса). К серверным процессам - менеджер файловой системы, менеджер процесса, менеджер устройств, менеджер сети, и т.д. Ядро запускается на 0 уровне привилегий процессора Intel, менеджеры и драйверы устройств запускаются на уровнях 1 и 2 (для исполнения действий ввода/вывода). Прикладные процессы запускаются на 3 уровне привилегий и поэтому могут выполнять только общие команды процессора.

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

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

Архитектура QNX 6

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

Микроядро - имеет очень маленький размер и выполняет две функции:

  • передача сообщений – (Микроядро обеспечивает маршрутизацию всех сообщений между всеми процессами в системе);

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

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

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

  • Менеджер (Администратор) процессов (Proc);

  • Менеджер (Администратор) файловой системы (Fsys);

  • Менеджер (Администратор) устройств (Dev);

  • Менеджер (Администратор) сети (Net).

Микроядро Neutrino скомпоновано с администратором процессов в единый модуль procnto, который часто называют "системным процессом".

Существуют различные дополнительные варианты модуля procnto (не говоря о версиях для разных процессоров):

  • procnto-amp — вариант модуля procnto с поддержкой симметричной многопроцессорности;

  • procnto-instr — вариант модуля procnto, оборудованный средствами трассировки событий;

  • procnto-smp-instr – сами догадайтесь для чего

Менеджеры файловой системы, менеджер устройств, менеджер сети называют администраторами ресурсов.

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

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

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

Предположим, что вы написали сервер базы данных. Как же должен быть классифицирован этот процесс?

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

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

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

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

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

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

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

Основным механизмом связи между процессами в QNX являются сообщения.

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

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

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

QNX как сеть

QNX изначально проектировался как сетевая операционная система. QNX объединяет всю сеть в единый однородный набор ресурсов.

В некоторых отношениях QNX сеть напоминает скорее большую ЭВМ, нежели набор мини-компьютеров.

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

Связь между процессами осуществляется единообразно, независимо от их местоположения в сети.

QNX сеть может быть построена с использованием различного оборудования и стандартных промышленных протоколов.

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

В основе такой прозрачной поддержки сети в QNX лежит всеобъемлющая концепция IPC на основе передачи сообщений.

Лекция 5

Файлові системи ОС РЧ QNX 6. Файлова система QNX 4. Типи файлів. Розміщення файлів. Атрибути файлів. Права доступу до файлів.