Course type
Course location
Course dates
Full course price

This course is designed to examine the components, structures, and mechanisms of the OpenVMS operating system. It is intended for those students requiring an extensive understanding of these areas. This course discusses some of the interrelationships between code, data structures, and synchronization techniques used in the operating system. System managers and application programmers will find useful technical background to assist them in their roles. Topics will include the effects of altering certain SYSGEN parameters, resource allocation, and implications of granting privileges.


  • OpenVMS Programming Features or equivalent experience
  • OpenVMS Internals I
  • The ability to read Macro
  • The ability to program in C

Course Objectives

Upon completion of the course, students should be able to:

  • Know the data structures that constitute a process and examine them using SDA
  • Understand the OpenVMS scheduling mechanism and change system parameters that affect scheduling
  • Find out the reasons for processes entering and leaving wait states
  • Explain and examine the contents of OpenVMS virtual address space
  • Analyze process and system stalls caused by process resource wait states
  • Describe the activities occurring in the various OpenVMS access modes

Course Audience

OpenVMS applications programmers
OpenVMS system programmers

Course Outline

  • Calling standard
  • Process structures
  • Locating structures
  • Kernel threads
  • System mechanisms
  • AST delivery
  • Synchronization
  • Nonpaged pool summary
  • Modular executive
  • Granularity hint regions
  • Building an execlet
  • Bugchecks
  • SDA and Clue with crashes
  • Debugging tools available
  • System code debugger
  • SDA extensions
  • I/O tracing
  • PC sampling
  • Mutex tracing
  • tr_print debugging
  • SDA extension routines
  • Thread states
  • Computable queries
  • Boost classes
  • Report System Event (RSE)
  • Quantum end activities
  • Class scheduler
  • Resource wait states
  • RWAST table
  • RWMBX waits
  • RWSCS waits
  • Mutex waits
  • Techniques for creating a process
  • PQL parameters
  • Process types
  • Process exit handler support
  • Kernel thread creation
  • Kernel thread deletion
  • General terms
  • Paths from I/O initiation to completion
  • Channel assignment
  • Data structures involved in channel assignment
  • I/O database lookup routines
  • $QIO routine processing
  • Start I/O routine
  • I/O post-processing
  • Kernel processes
  • Kernel process blocks
  • Using KP service routines
  • Extended file cache
  • CPU sanity timeout crashes
  • Inter-processor interrupts (IPIs)
  • Scheduling queries
  • Rescheduling interrupt
  • Reporting an event
  • Channel assignment
  • FDT routines
  • Start I/O
  • I/O post-processing
  • Cluster I/O

Instructors in this course

Dennis O'Brien

40+ years of OpenVMS support and teaching experience, founder of the Bruden Corporation, author of OpenVMS, HP-UX, Tru64 UNIX, and C Programming courses and books.
Languages: English