Архитектура микроядра системы QNX
QNX состоит из небольшого ядра, координирующего работу взаимодействующих процессов [3]. Как показано на рисунке, структура больше напоминает не иерархию, а команду, в которой несколько игроков одного уровня взаимодействуют между собой и со своим «защитником» — ядром.
Рис. 1 Микроядро системы QNX координирует работу системных менеджеров.
Настоящее ядро
Ядро — это «сердце» любой операционной системы. В некоторых операционных системах на него возлагается так много функций, что ядро, по сути, заменяет всю операционную систему!
В QNX же Микроядро — это настоящее ядро. Во-первых, как и следует ядру реального времени, ядро QNX имеет очень маленький размер. Во-вторых, оно выполняет две важнейшие функции:
- · передача сообщений — Микроядро обеспечивает маршрутизацию всех сообщений между всеми процессами в системе;
- · диспетчеризация — планировщик — это часть Микроядра, и он получает управление всякий раз, когда процесс изменяет свое состояние в результате получения сообщения или прерывания.
В отличие от всех остальных процессов, ядро никогда не получает управления в результате диспетчеризации. Входящий в состав ядра код выполняется только в результате прямых вызовов из процесса или аппаратного прерывания.
Системные процессы
Все услуги операционной системы, за исключением тех, которые выполняются ядром, в QNX предоставляются через стандартные процессы. Типичная конфигурация QNX имеет следующие системные процессы:
- · Менеджер процессов (Proc);
- · Менеджер файловой системы (Fsys);
- · Менеджер устройств (Dev);
- · Менеджер сети (Net).