Производительность подсистемы периферийных устройств
Управление потоком событий в подсистеме периферийных устройств организовано таким образом, что минимизируются накладные расходы и максимизируется пропускная способность для устройств, находящихся в нередактируемом (raw) режиме. Это достигается следующим образом:
- обработчики прерываний помещают принятые данные в очередь, организованную в оперативной памяти. Обработчик прерываний планирует администратор Dev к запуску только в том случае, если была задержка операции чтения, и в данный момент эта операция может быть продолжена. Во всех остальных случаях обработчик прерываний просто возвращает управление. Если администратор Dev уже запущен, то никакого планирования его выполнения не происходит;
- в том случае, если операция чтения разрешена, администратор Dev прямо переписывает данные из входного буфера системы в приемный буфер приложения. В результате данные копируются только один раз.
Таким образом, в основе изящной модели ввода/вывода системы QNX лежит описанный выше механизм управления потоком событий в подсистеме периферийных устройств, а также присущие системе очень малые времена задержек прерываний и планирования.