HP OpenVMS Alpha Version 8.3 and HP OpenVMS Version 8.3-1H1 for Integrity Servers SPD 82.35.14

At a lower level, programs can call system services directly for security, event flag, asynchronous system trap, logical name, record and file I/O, process control, timer, time conversion, condition handling, lock management, and memory management. Again, system services use the appropriate platform calling standard and condition- handling conventions.

OpenVMS supports the execution of user-mode images created on earlier versions of OpenVMS. Typically, recompiling and relinking are not required.

MACRO Compiler

With minor modifications, VAX MACRO-32 sources can be compiled for execution on Alpha or Integrity servers.

POSIX Threads Library

OpenVMS includes a user-mode, multithreading capability called POSIX Threads Library. POSIX Threads Library provides a POSIX 1003.1-1996 standard style threads interface. Additionally, POSIX Threads Library provides an interface that is the OpenVMS implementation of Distributed Computing Environment (DCE) threads as defined by The Open Group.

POSIX Threads Library is a library of run-time routines that allows the user to create multiple threads of execution within a single address space. With POSIX Threads Library Kernel Threads features en- abled, POSIX Threads Library provides for concurrent processing across all CPUs by allowing a multithreaded application to have a thread executing on every CPU (on both symmetric and asymmetric multiprocessor sys- tems). Multithreading allows computation activity to overlap I/O activity. Synchronization elements, such as mutexes and condition variables, are provided to help ensure that shared resources are accessed correctly. For scheduling and prioritizing threads, POSIX Threads Library provides multiple scheduling policies. For debugging multithreaded applications, POSIX Threads Library is supported by the OpenVMS Debugger. POSIX Threads Library also provides Thread Independent Services (TIS), which assist in the development of thread- safe APIs.

Librarian Utility

The Librarian utility permits storage of object modules, image files, macros, help files, text files, or any general record-oriented information in central, easily accessible files. Object module and image file libraries are searched by the linker when the linker finds a reference it cannot resolve in one of its input files. Macro libraries are searched by MACRO-32 and MACRO-64 when either finds a macro name that is not defined in the input file.

Hypersort

Hypersort is a portable library of user-callable routines that provide a high-performance sorting capability for Alpha and Integrity servers.

Traceback Facility

When an application is compiled and linked with trace- back information, the Traceback facility translates stack frame addresses into routine names and line numbers and displays a symbolic traceback whenever a runtime error occurs in that application.

Debugger

The OpenVMS Debugger allows users to trace program execution, as well as display and modify register contents using the same symbols that are present in the source code.

The debugger contains a heap analyzer feature that displays a graphic view of memory allocations and deallocations in real time.

System Code Debugger

The OpenVMS System Code Debugger is a kernel code debugger. It allows a system code developer to trace the execution of nonpageable system code at any interrupt priority level (IPL). Based on the OpenVMS Debug- ger, the System Code Debugger uses the same interface and most of the same command set.

System Dump Analyzer (SDA) Utility

In the event of a system failure, OpenVMS writes the contents of memory to a preallocated dump file. This dump file can later be analyzed using System Dump Analyzer (SDA). System dumps can either be full memory dumps, where all memory is written, or selective memory dumps, where only portions of memory in use at the time of the system failure is written. The dump file can be located on any locally connected disk. On Alpha and Integrity servers, dump compression allows both full and selective dumps to be written to smaller files than required for uncompressed dumps. Full memory dumps, if not compressed, require a dump file big enough to hold all memory. Selective memory dumps write as much of the memory in use at the time of the system failure that will fit into the dump file.

Spinlock Tracing Utility

The Spinlock Tracing Utility provides a mechanism for characterizing spinlock usage and can collect performance data for a given spinlock on a per-CPU basis.

3