Введение
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 (Queue I/O) is a term used in several computer operating systems designed by the former Digital Equipment Corporation (DEC) of Maynard, Massachusetts. I/O operations on these systems are initiated by issuing a QIO call to the kernel. There are two types of QIO Queue I/O and Queue I/O with Wait. For QIO without wait, the call returns immediately. If the request is successfully enqueued, the actual operation occurs asynchronously. On completion, status is returned in the QIO status doubleword. The QIO request may also specify that completion set an event flag or issue an Asynchronous System Trap (AST). The call may also be issued as QIOW (Queue I/O and Wait for completion), allowing synchronous I/O. In this case, the wait for event flag operation is combined so the call does not return until the I/O operation completes or fails. The following operating systems implement QIO(W):
RSX 15
RSX 11 (including all of the variants)
RSTS/E (synchronous only, emulated by the RSX runtime system)
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).