HP OpenVMS Systems Documentation
OpenVMS Programming Concepts Manual
Begin
Index
Contents (summary)
Preface
Preface
Chapter 1
Overview of Manuals and Introduction to Development on OpenVMS Systems
Part 1
Process and Synchronization
Chapter 2
Process Creation
Chapter 3
Process Communication
Chapter 4
Process Control
Chapter 5
Symmetric Multiprocessing (SMP) Systems
Chapter 6
Synchronizing Data Access and Program Operations
Chapter 7
Synchronizing Access to Resources
Part 2
Interrupts and Condition Handling
Chapter 8
Using Asynchronous System Traps
Chapter 9
Condition-Handling Routines and Services
Part 3
Addressing and Memory Management
Chapter 10
Overview of Alpha Virtual Address Space
Chapter 11
Support for 64-Bit Addressing (Alpha Only)
Chapter 12
Memory Management Services and Routines on OpenVMS Alpha
Chapter 13
Memory Management Services and Routines on OpenVMS VAX
Chapter 14
Using Run-Time Routines for Memory Allocation
Chapter 15
Alignment on OpenVMS Alpha and VAX Systems
Chapter 16
Memory Management with VLM Features
Part 4
OpenVMS Programming Interfaces: Calling a System Routine
Chapter 17
Call Format to OpenVMS Routines
Chapter 18
Basic Calling Standard Conventions
Chapter 19
Calling Run-Time Library Routines
Chapter 20
Calling System Services
Chapter 21
STARLET Structures and Definitions for C Programmers
Part 5
I/O, System and Programming Routines
Chapter 22
Run-Time Library Input/Output Operations
Chapter 23
System Service Input/Output Operations
Chapter 24
Using Run-Time Library Routines to Access Operating System Components
Chapter 25
Using Cross-Reference Routines
Chapter 26
Shareable Resources
Chapter 27
System Time Operations
Chapter 28
File Operations
Chapter 29
Overview of Extended File Specifications (Alpha Only)
Chapter 30
Distributed Transaction Manager (DECdtm)
Chapter 31
Creating User-Written System Services
Chapter 32
System Security Services
Chapter 33
Authentication and Credential Management (ACM) System Service
Chapter 34
Logical Name and Logical Name Tables
Chapter 35
Image Initialization
Part 6
Glossary and Appendices: Authentication Glossary, Macros, and Examples of 64-Bit Programming
Glossary
Appendix A
C Macros for 64-Bit Addressing
Appendix B
64-Bit Example Program
Appendix C
VLM Example Program
Appendix D
Generic Macros for Calling System Services
Appendix E
OpenVMS Data Types
Appendix F
Distributed Name Service Clerk (VAX Only)
Index
Figures
Examples
Tables
Contents
Preface
Preface
Preface
Chapter 1
1
Overview of Manuals and Introduction to Development on OpenVMS Systems
1.1
Overview of the Manual
1.2
Overview of the OpenVMS Operating System
1.3
Components of the OpenVMS Operating System
1.3.1
OpenVMS Systems on Multiple Platforms
1.3.1.1
System Compatibility and Program Portability Across Platforms
1.3.2
OpenVMS Computing Environments
1.3.2.1
Open System Capabilities
1.3.2.2
Application Portability
1.3.2.2.1
Other Application Portability Features
1.3.3
Distributed Computing Capabilities
1.3.3.1
Client/Server Style of Computing
1.3.3.2
OpenVMS Client/Server Capabilities
1.4
The OpenVMS Programming Environment
1.4.1
Programming to Standards
1.4.1.1
Common Environment for Writing Code
1.4.1.2
Common Language Environment
1.5
OpenVMS Programming Software
1.5.1
Creating Program Source Files
1.5.2
Creating Object Files
1.5.3
Creating Runnable Programs
1.5.4
Testing and Debugging Programs
1.5.4.1
Special Modes of Operation for Debugging
1.5.5
Using Other Program Development Utilities
1.5.6
Managing Software Development Tasks
1.6
Using Callable System Routines
1.6.1
Using the POSIX Threads Library Routines
1.6.2
Using OpenVMS Run-Time Library Routines
1.6.3
Using OpenVMS System Services
1.6.4
Using OpenVMS Utility Routines
1.7
Programming User Interfaces
1.8
Developing Real-Time Applications
1.9
Optional Compaq Software Development Tools
1.10
Managing Data
1.10.1
RMS Files and Records
1.10.2
RMS Utilities
Part 1
Part 1
Process and Synchronization
Chapter 2
2
Process Creation
2.1
Process Types
2.2
Execution Context of a Process
2.3
Modes of Execution of a Process
2.4
Creating a Subprocess
2.4.1
Using LIB$SPAWN to Create a Spawned Subprocess
2.4.2
Using the C system() Call
2.4.3
Using SYS$CREPRC to Create a Subprocess
2.4.3.1
Disk and Directory Defaults for Created Processes
2.5
Creating a Detached Process
2.6
Process Quota Lists
2.7
Debugging a Subprocess or a Detached Process
2.8
Kernel Threads and the Kernel Threads Process Structure (Alpha Only)
2.8.1
Definition and Advantages of Kernel Threads
2.8.2
Kernel Threads Features
2.8.2.1
Multiple Execution Contexts Within a Process
2.8.2.2
Efficient Use of the OpenVMS and POSIX Threads Library Schedulers
2.8.2.3
Terminating a POSIX Threads Image
2.8.3
Kernel Threads Model and Design Features
2.8.3.1
Kernel Threads Model
2.8.3.2
Kernel Threads Design Features
2.8.3.2.1
Process Structure
2.8.3.2.2
Access to Inner Modes
2.8.3.2.3
Scheduling
2.8.3.2.4
ASTs
2.8.3.2.5
Event Flags
2.8.3.2.6
Process Control Services
2.8.4
Kernel Threads Process Structure
2.8.4.1
Process Control Block (PCB) and Process Header (PHD)
2.8.4.1.1
Effect of a Multithreaded Process on the PCB and PHD
2.8.4.2
Kernel Thread Block (KTB)
2.8.4.3
Floating-Point Registers and Execution Data Blocks (FREDs)
2.8.4.4
Kernel Threads Region
2.8.4.5
Per-Kernel Thread Stacks
2.8.4.6
Per-Kernel-Thread Data Cells
2.8.4.7
Summary of Process Data Structures
2.8.4.8
Kernel Thread Priorities
Chapter 3
3
Process Communication
3.1
Communication Within a Process
3.1.1
Using Local Event Flags
3.1.2
Using Logical Names
3.1.2.1
Using Logical Name Tables
3.1.2.2
Using Access Modes
3.1.2.3
Creating and Accessing Logical Names
3.1.3
Using Command Language Interpreter Symbols
3.1.3.1
Local and Global Symbols
3.1.3.2
Creating and Using Global Symbols
3.1.4
Using the Common Area
3.1.4.1
Creating the Process Common Area
3.1.4.2
Common I/O Routines
3.1.4.3
Modifying or Deleting Data in the Common Block
3.1.4.4
Specifying Other Types of Data
3.2
Communication Between Processes
3.2.1
Mailboxes
3.2.1.1
Creating a Mailbox
3.2.1.2
Creating Temporary and Permanent Mailboxes
3.2.1.3
Assigning an I/O Channel Along with a Mailbox
3.2.1.4
Reading and Writing Data to a Mailbox
3.2.1.5
Using Synchronous Mailbox I/O
3.2.1.6
Using Immediate Mailbox I/O
3.2.1.7
Using Asynchronous Mailbox I/O
3.3
Intra-Cluster Communication
3.3.1
Programming with Intra-Cluster Communications
3.3.1.1
ICC Concepts
3.3.1.2
Design Considerations
3.3.1.2.1
Naming
3.3.1.2.2
Message Ordering
3.3.1.2.3
Flow Control
3.3.1.2.4
Transfer Sizes and Receiving Data
3.3.1.2.5
Transfer Sizes and Transceive
3.3.1.2.6
Disconnection
3.3.1.2.7
Error Recovery
3.3.1.3
General Programming Considerations
3.3.1.4
Servers
3.3.1.4.1
Connection Events
3.3.1.4.2
Disconnection Events
3.3.1.5
Clients
Previous
Next
Contents
Index