QNX состоит из небольшого ядра, которое координирует работу взаимодействующих системных и прикладных процессов (рис.1).
Микроядро - имеет очень маленький размер и выполняет две функции:
- передача сообщений – (Микроядро обеспечивает маршрутизацию всех сообщений между всеми процессами в системе);
- диспетчеризация - Планировщик - является частью Микроядра, и он получает управление всякий раз, когда процесс изменяет свое состояние в результате получения сообщения или прерывания.
В отличие от всех остальных процессов, ядро никогда не получает управления в результате диспетчеризации. Код ядра выполняется только в результате прямых вызовов из процесса или аппаратного прерывания.
Все услуги операционной системы, за исключением тех, которые выполняются ядром, в QNX предоставляются через стандартные процессы. Типичная конфигурация QNX имеет следующие системные процессы:
- Менеджер (Администратор) процессов (Proc);
- Менеджер (Администратор) файловой системы (Fsys);
- Менеджер (Администратор) устройств (Dev);
- Менеджер (Администратор) сети (Net).
Микроядро Neutrino скомпоновано с администратором процессов в единый модуль procnto, который часто называют "системным процессом".
|
|
Существуют различные дополнительные варианты модуля procnto (не говоря о версиях для разных процессоров):
- procnto-amp — вариант модуля procnto с поддержкой симметричной многопроцессорности;
- procnto-instr — вариант модуля procnto, оборудованный средствами трассировки событий;
- procnto-smp-instr – сами догадайтесь для чего
Менеджеры файловой системы, менеджер устройств, менеджер сети называют администраторами ресурсов.