Введение

QIO (Queue I/O) – термин, используемый в нескольких компьютерных операционных системах, разработанных бывшей Digital Equipment Corporation (DEC) в городе Мейнард, штат Массачусетс. Операции ввода-вывода в этих системах инициируются вызовом QIO в ядро системы. Существует два типа QIO: Queue I/O и Queue I/O с ожиданием (Wait). Для QIO без ожидания вызов возвращает управление немедленно. Если запрос успешно поставлен в очередь, фактическая операция выполняется асинхронно. По завершении статус возвращается в двойном слове состояния QIO. Запрос QIO также может указывать, что по завершении необходимо установить флаг события или сгенерировать асинхронную системную ловушку (AST). Вызов также может быть выполнен как QIOW (Queue I/O и ожидание завершения), обеспечивая синхронный ввод-вывод. В этом случае ожидание установки флага события объединяется, поэтому вызов не возвращает управление, пока операция ввода-вывода не будет завершена или не завершится с ошибкой. Следующие операционные системы поддерживают QIO(W):
RSX 15
RSX 11 (включая все варианты)
RSTS/E (только синхронный режим, эмулируется системой времени выполнения RSX)
OpenVMS

Необычные QIO, требующие сложной обработки

Простые QIO, такие как запросы на чтение или запись, обслуживаются либо самим ядром, либо драйверами устройств. Определенные более сложные запросы, в частности, связанные с магнитной лентой и операциями на уровне файлов, первоначально выполнялись вспомогательным процессором управления (ACP) – задачей специального назначения с собственным отображением адресов. Файловая система Files 11 ODS 1 в RSX 11 была реализована в виде библиотеки подпрограмм, которая взаимодействовала с задачей F11ACP, используя специальный набор QIO, называемый "ACP QIO". Эквивалентная функциональность для управления магнитными ленточными устройствами обеспечивалась задачей MTAACP. Изначально файловая система Files 11 ODS 2 предоставлялась F11BACP в VMS, но впоследствии функциональность F11BACP была включена в ядро VMS для снижения накладных расходов на переключение контекста процессов и теперь называется XQP (eXtended Qio Processor).