OpenVMS Academy Programming Features
Course Code: VM310
Length: 5 days
Schedule and Registration
- Mon, Mar 31, 2025 $4,000.00 Denver, CO
- Mon, Mar 31, 2025 $4,000.00 E-Learning
Course Description
This course is intended to quickly bring the application programmer up to speed for programming in an OpenVMS environment. The scope of material is fairly broad from basic compiling to advanced system services. Although some of the material is 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. The course covers the following categories: General Programming, Synchronization, File System and RMS, Processes and Scheduling, and Memory Management.
The information in this class is designed to be applied to any compiled programming language on OpenVMS. Nearly all examples are provided in C, Fortran and Pascal. Each of the C examples have been compiled and tested with both the C and the C++ compilers. Where language differences exist, examples may also be included in Basic, Cobol and Macro-32.
Who Should Attend
OpenVMS Application and System Programmers with knowledge of one or more compiled programming languages
Prerequisites
Before taking this course, students should:
- Have a fundamental understanding of OpenVMS
- Be able to issue DCL commands
- Be able to create and edit text files
- Be familiar with one of the programming languages supported on OpenVMS
Benefits of Attending this Class
Upon completion of this course, students will be able to:
- Compile and link a program
- Read listing and map files
- Call procedures, including system services and run-time library routines
- Create and manage processes
- Communicate with other processes
- Synchronize using event flags and locks
Course Contents
Environment
- System Architecture
- OpenVMS Clusters
- Access Modes
- Processes
- Memory Management Concepts
The Application Development Cycle
- Development Cycle
- OpenVMS Compilers
- Common Compiler Options
- OpenVMS Linker
- Image Activation
- Example Build and Activation
- Symbolic Debuggere
- Symbolic Naming Conventions
- Libraries
- Layered Products for Developers
Data Formats
- Integral Values
- Floating Point Values
- Data Alignment
- Calling Standard
- Item Lists
- Procedure Status
Library Routines
- Run Time Library Routines
- System Services
- Utility Routines
- Cross-Platform Routines
- Extension and Integration Routines
- String Manipulation Example
- Convert Floating Point Data
- Foreign Commands
- System Messages
- Sorting Data
Events and Synchronization
- Synchronization
- Specialized Instructions
- Event Flags
- I/O Status Block
- Asynchronous System Traps
- Recursive Programming
- System Events
Time and Timers
- Time Formats
- System Time
- Time Conversion
- Mathematical Operations on Time
- Components of Time
- Coordinated Universal Time
- Process Times and Counts
- System Timers
Condition Handling
- Conditions and Exceptions
- Signaling an Exception
- Condition Handlers
- Exit Handlers
Record Management Services
- RMS Concepts
- RMS Structures
- RMS Services
- Sequential File Example
- Indexed File Example
- RMS Synchronization with Others
- Language Specific Options
- File Definition Language
- RMS Utilities
Low Level I/O
- Overview
- File I/O
- Mailbox I/O
- Terminal I/O
- Getting Device Information
- Other QIO Interfaces
Lock Manager
- Overview
- Lock Modes
- Blocking ASTs
- Lock Implementation
Managing Processes
- Image Activation
- Process Creation
- Process Selection for System Services
- Getting Job/Process Information
- Process Management and Control
Memory Management
- Overview
- Dynamic Memory Allocation
- Process Sections
- Virtual Memory and Physical Memory
- 64-bit Memory Usage
Shareable Images
- Shareable Images
- Dynamically Loading Shareable Images
- Common Blocks