The XQP and I/O Processing

Order Number: XX-E1674-24

This document, Chapter 6 of a manual titled "The XQP and I/O Processing," details the Extended QIO Processor (XQP) in the context of VMS (Virtual Memory System) operating systems. It explains how the XQP handles user-initiated input/output (I/O) requests, especially those that go beyond the capabilities of the standard $QIO system service and device drivers.

The document breaks down I/O processing into three phases: I/O request preprocessing, driver-specific processing, and I/O postprocessing. The XQP intervenes to perform additional processing, particularly for non-transfer requests (like file access), handling bad blocks, and managing complex transfer requests where memory information is insufficient.

Key aspects covered include:

  • XQP Initialization: How the XQP code is mapped and how it allocates and manages its "impure" (per-process) storage, which includes a private kernel stack, an XQP queue, and XQP data.
  • XQP Call Interface: How user processes interact with the XQP via the $QIO system service and the structure of I/O Request Packets (IRPs).
  • Internal Dispatching: The flow of control from the $QIO system service through the XQP's internal routines, including the Function Decision Table (FDT) and the Driver Dispatch Table (DDT).
  • XQP Code Execution: The execution flow within the XQP, including the role of its dispatcher and how it handles requests by switching to its own internal stack.
  • Processing in Secondary Context: How the XQP uses a secondary context to handle nested functions, saving and restoring the primary context.
  • Window Turning: The complex process of mapping virtual file blocks to physical disk blocks, especially when the current "window" of mapping information is insufficient.
  • Building the XQP I/O Packet: The structure and content of the XQP I/O buffer packet (AIB) used for data transfer.
  • Checking Volume Status: How the XQP verifies that a file system volume is in the correct state for an operation.
  • Queuing the I/O Packet: The mechanisms used to queue I/O packets to the XQP dispatcher, ensuring proper synchronization.
  • Error Processing, Status, and Cleanup: How errors are detected, handled, and how the XQP cleans up file system structures after successful or failed operations.
  • Event Notification: How the system notifies users of significant file system events.
  • Termination of Processing: The final steps involved in completing an I/O operation, including unlocking resources and handling volume dismounts.
  • Virtual I/O and Device I/O: The specific handling of virtual file system I/O within process context and device I/O through the I/O postprocessing queue.

The document frequently refers to figures and tables for detailed explanations of data structures (like IRPs, AIBs, and impure area layouts) and control flow. It is a highly technical document aimed at system programmers or those needing a deep understanding of VMS file system I/O handling.

XX-E1674-24
December 1992
72 pages
Quality

Original
3.9MB

Site structure and layout ©2025 Majenko Technologies