This document serves as a test and answer key for training on VAX/VMS Device Drivers, prepared by the Educational Services of Digital Equipment Corporation in October 1984. It covers fundamental and advanced concepts related to device driver development and interaction with the VAX/VMS operating system.
The content is organized into 11 chapters, each featuring a "Test" section with questions and an "Answer Sheet" providing solutions. Key topics include:
- Overview: Definitions of device drivers, programmed I/O, and driver fork processes, along with the basic organization and functions of a device driver.
- I/O Data Structures: Relationships and contents of core data blocks like Unit Control Blocks (UCB), Device Data Blocks (DDB), Channel Control Blocks (CCB), and Function Decision Tables (FDT).
- I/O Sequence: Detailed steps involved in a typical I/O operation, including interrupt handling and I/O posting.
- Driver Incorporation: Instructions for assembling, linking, and incorporating a device driver using SYSGEN commands.
- Driver Tables: Initialization of data structures and the use of macros (DPT, DDTAB, FUNCTAB) for defining driver tables.
- FDT Routines: Concepts of position-independent and reentrant code, and various exit methods for FDT routines.
- Debugging: Utilizing tools like XDELTA and SDA for debugging, and requirements for driver test programs.
- Required and Optional Driver Routines: Discussions on essential driver routines (start I/O, interrupt service, timeout) and optional ones (cancel I/O, initialization, error logging).
- Related Topics & I/O Architecture: Addressing advanced concepts like Set Attention AST, ACP-$QIO interaction, execution speed optimization, and the VAX-11/780's I/O architecture, including SBI to UNIBUS/MASSBUS address translation and data paths.
The document is designed for educational purposes, helping students test their understanding and providing correct answers for self-assessment in VAX/VMS device driver programming.