"Андрей Куракин. Системная архитектура QNX4" - читать интересную книгу автора

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

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

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

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


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

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

После запуска и завершения процедуры инициализации, драйвер может
выбрать один из двух вариантов поведения:

стать расширением определенного системного процесса;
продолжать выполнение как независимый процесс.


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

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