OpenVMS Programming Features

This course is intended to quickly bring the application programmer up to speed in an OpenVMS environment. The scope of material is fairly broad – from basic compiling to advanced system services. Although some of the material will be provided as an exposure to capabilities available to the programmer, it is expected that the students will be able to program at an in-depth level upon completion of this course.

Course Objectives

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

  • Compile and link a program
  • Read listing and map files
  • Understand how to call system procedures, including system services and runtime library routines
  • Create a process
  • Communicate with another process
  • Synchronize using event flags, mailboxes, global sections, and locks

Curriculum

Course Outline

Introduction
  • CISC vs. RISC vs. EPIC architectures
  • Data types
  • OpenVMS access modes
  • OpenVMS processes
  • OpenVMS Alpha memory management
  • OpenVMS calling standard
Compiling and Linking
  • OpenVMS compilers
  • Common compiler options
  • $ LINK command
  • Image activation
  • Symbolic debugger
  • Data alignment
  • Symbolic naming conventions
  • Libraries used by compilers and linkers
Library Routines
  • Floating point formats and conversion
  • Runtime library routines
  • General purpose library routines
  • Screen management library
  • String manipulation library
  • Utility routines
  • System services
Events and Synchronization
  • Synchronization
  • Events flags
  • The I/O status block
  • Asynchronous System Traps (ASTs)
RMS
  • RMS concepts
  • RMS structures
  • RMS services
  • Special language considerations
  • RMS system services examples
  • File sharing and record locking
  • Language-specific considerations
  • RMS utilities
Low Level I/O
  • Assigning channels
  • The QIO system service
  • File I/O
  • Terminal I/O
  • Mailbox I/O
Fast I/O
  • Buffer objects
  • Fast I/O concepts
  • Implementing fast I/O
Lock Manager
  • Locking concepts
  • OpenVMS support for locking
  • OpenVMS lock implementation
Time and Timers
  • Time formats
  • System time and time conversion
  • Coordinated Universal Time (UTC)
  • Library routines supporting time
  • System timers
Process and Scheduling
  • The process
  • Image activation
  • Process creation
  • Getting job/process information
  • Process selection
  • Process management/control
  • Terminating images/processes
  • Exit handlers
Shareable and Resident Images
  • Shareable images
  • Resident images
Memory Management
  • Memory allocation
  • Process sections
  • Global sections
  • Working sets and swapping
  • 64-bit memory usage