CONTENTS Title Page Copyright Page Preface 1 Introduction to Digital's Realtime Products 1.1 Realtime Applications 1.2 Realtime System Characteristics 1.3 Industry Standards 1.4 Open Systems Support 1.4.1 Standards Compliance 1.4.2 Open Software Foundation 1.4.3 Network Application Support 1.5 POSIX Standards 1.5.1 DECelx POSIX 1.5.2 DEC OSF/1 POSIX 1.5.3 VMS POSIX 1.5.4 VAXELN POSIX 1.6 Realtime Products Summary 1.6.1 DECelx Realtime Tools 1.6.2 VAXELN Toolkit 1.6.3 VMS Operating System 1.6.4 UNIX Operating Systems 1.6.5 High-Level Language Compilers and Runtime Libraries 1.6.6 Digital's COHESION Environment 1.6.7 DEC Realtime Integrator 1.6.8 Realtime VAX Hardware 1.7 Digital-Sponsored Programs for Promoting Realtime Solutions 1.7.1 Cooperative Marketing Program 1.7.2 Enterprise Integration Services 1.7.3 Technical OEM Organization 1.7.4 TRI/ADD Program Part I DECelx 2 DECelx Overview 2.1 DECelx Realtime System Features 2.2 DECelx Realtime Tools for ULTRIX 2.3 DECelx Development Cycle 2.3.1 Developing a DECelx Hardware Environment 2.3.2 Developing a DECelx Application 2.3.3 Loading a DECelx Target 2.4 DECelx Board Support Packages 2.5 DECelx Target Hardware 2.5.1 Microprocessors on the R3000 Architecture 2.5.2 Microprocessors on Motorola Architecture 2.5.3 Realtime Options 2.6 DECelx Hardware and Software Requirements 3 DECelx Components 3.1 Kernel Facilities for Multitasking and Intertask Communications 3.2 POSIX Synchronization Facilities 3.2.1 Binary Semaphores 3.2.2 Clocks and Timers 3.2.3 POSIX Synchronization Functions 3.3 Networking Facilities 3.3.1 Sockets 3.3.2 Remote Procedure Calls (RPC) 3.3.3 Remote Login: rlogin, telnet 3.3.4 Remote File Access: NFS, ftp, rsh 3.3.5 Remote Command Execution 3.4 Module Loader and System Symbol Table 3.5 Shell 3.6 Debugging Facilities 3.7 Performance Evaluation 3.8 I/O System 3.9 Local File Systems 3.9.1 DOS File System 3.9.2 RT-11 File System 3.9.3 Raw Disk File System 3.9.4 Alternative File Systems 3.10 Utility Libraries 3.11 Board Support Packages Part II VAXELN Toolkit 4 VAXELN Toolkit Overview 4.1 Survey of VAXELN Toolkit Components 4.2 VAXELN Toolkit Realtime Programming Features 4.3 VAXELN Hardware and Software Requirements 5 VAXELN Programming Concepts 5.1 Processes: Program Execution Threads 5.2 Jobs: Process Families 5.3 Concurrency: Processes Sharing Processor Resources 5.3.1 Multitasking 5.3.2 Multiprogramming 5.3.3 Multiprocessing 6 VAXELN Toolkit Components 6.1 VAXELN System Development Software 6.1.1 VAXELN Pascal Compiler 6.1.2 VAXELN_SERVICES Ada and Runtime Libraries 6.1.3 VAXELN System Builder 6.1.4 Loading and Booting a VAXELN System Image 6.2 VAXELN Runtime Software 6.2.1 VAXELN Kernel 6.2.2 VAXELN POSIX Runtime Library 6.2.3 KAV30 Runtime Library 6.2.4 VAXELN Runtime Libraries 6.2.5 Device Drivers 6.2.6 Network Communications Services 6.2.7 Authorization Service 6.2.8 File Service 6.3 VAXELN Utilities 6.3.1 Development Utilities 6.3.2 Command Language Utility 6.3.3 Network Utilities 7 VAXELN DECwindows 7.1 DECwindows Architecture 7.2 DECwindows User Environment 7.3 VAXELN DECwindows Server 7.4 VAXELN DECwindows Applications 7.5 VAXELN DECwindows User Environment Components 8 VAXELN Window Server 8.1 VAXELN Window Server Overview 8.2 VAXELN Window Server Features 8.3 VAXELN Window Station 8.4 VAXELN Window Server Development Software 8.5 VAXELN Window Server Hardware and Software Requirements Part III VMS Systems in Realtime Applications 9 Survey of VMS Realtime Capabilities 9.1 VMS Realtime Services 9.2 Programming Techniques for VMS Realtime Applications 9.3 VMS POSIX for VMS Realtime Applications 9.4 Software Tools for VMS Realtime Applications 9.4.1 VMS Error Log Utility 9.4.2 VMS Librarian 9.4.3 VMS Linker 10 VMS POSIX Realtime Programming 10.1 VMS POSIX Programming Environment 10.2 VMS POSIX Commands and Utilities 10.2.1 VMS POSIX File System 10.2.2 VMS POSIX Shell 10.3 VMS POSIX Realtime Environment 10.3.1 Process Synchronization Using VMS POSIX 10.3.2 Interprocess Communication Using VMS POSIX 10.3.3 Realtime Performance Using VMS POSIX Part IV DEC OSF/1 Systems in Realtime Applications 11 Survey of Programming on DEC OSF/1 Systems 11.1 DEC OSF/1 Operating System Overview 11.1.1 Preemptive Kernel 11.1.2 Realtime Priorities 11.1.3 DECthreads 11.1.4 Memory-Mapped Files 11.1.5 Interprocess Communication 11.1.6 Networking 11.2 DEC OSF/1 Programming Support Tools 11.3 DEC OSF/1 Realtime Environment 11.3.1 POSIX 1003.1 on DEC OSF/1 11.3.2 P1003.4/D11 on DEC OSF/1 12 DEC OSF/1 Realtime Programming Environment 12.1 DEC OSF/1 POSIX Environment 12.2 DEC OSF/1 Realtime Functions 12.2.1 Clocks and Timers 12.2.2 Process Priority Scheduling 12.2.3 Process Memory Locking 12.2.4 Asynchronous Input and Output 12.2.5 Shared Memory and Memory Mapped Files 12.2.6 Semaphores Part V High-Level Language Support for Realtime Applications 13 High-Level Language Overview 13.1 DEC Ada 13.2 VAX BASIC 13.3 DEC C 13.4 DEC C++ 13.5 DEC Fortran 13.6 VAX FORTRAN High-Performance Option 13.7 DEC Pascal 13.8 VAX Pascal 14 VAXELN Ada 14.1 VAXELN Ada Software Features 14.2 VAXELN Ada Programming Support Environment 14.2.1 VAX Ada Compiler 14.2.2 VAX Ada Program Library Manager 14.2.3 VAXELN Toolkit 14.2.4 VAXELN Ada Remote Debugger 14.3 VAXELN Ada Runtime Software 14.3.1 VAXELN Runtime Facilities 14.3.2 VAX Ada Predefined Library Packages 14.4 VAXELN Ada Development Cycle 14.5 VAXELN Ada Hardware and Software Requirements 15 XD Ada Cross-Development System 15.1 XD Ada Software Features 15.2 XD Ada Programming Support Environment 15.2.1 XD Ada Cross-Compilers 15.2.2 XD Ada Library of Predefined Compilation Units 15.2.3 XD Ada Program Library Manager 15.2.4 XD Ada Macro Assemblers 15.2.5 XD Ada Librarian 15.2.6 XD Ada Builder 15.2.7 XD Ada Loader 15.2.8 XD Ada Formatter 15.2.9 XD Ada Run Command 15.2.10 XD Ada Debugger 15.3 XD Ada Runtime Software 15.3.1 XD Ada Target Runtime System 15.3.2 XD Ada Target Debug Kernel 15.4 XD Ada Development Cycle 15.5 XD Ada Hardware and Software Requirements Part VI The Digital COHESION Environment 16 Overview of the COHESION Environment 16.1 Digital's Vision of the COHESION Environment 16.2 Introduction to the Digital COHESION Environment 16.3 Components of the Digital COHESION Environment 16.3.1 Comprehensive Services and Support 16.3.2 Network Application Support (NAS) 16.3.3 Tools for Software Life Cycle and Management 16.3.4 Tools for Factory Management 17 VMS CASE Tools in the COHESION Environment 17.1 VMS DECset CASE Tools 17.1.1 DEC Code Management System 17.1.2 DEC Module Management System 17.1.3 DEC Test Manager 17.1.4 DEC Language-Sensitive Editor 17.1.5 DEC Source Code Analyzer 17.1.6 DEC Performance and Coverage Analyzer 17.1.7 Integrated Symbolic Debugger Support 17.1.8 DECset for VMS Software Requirements 17.2 Network Application Support (NAS) for VMS 17.2.1 NAS 200 for VMS: Integration at the Desktop 17.2.2 NAS 250 for VMS: VAXstation Integration 17.2.3 NAS 300 for VMS: Distributed Client/Server Computing 17.2.4 NAS 400 for VMS: Critical Large Business Operations 17.3 Additional CASE Tools 17.3.1 DEC Graphics Kernel System 17.3.2 DEC PHIGS 17.3.3 DECdesign 17.3.4 DECgraph 17.3.5 VAX Notes 17.3.6 VAX Performance Advisor 17.3.7 VAX Software Performance Monitor 17.3.8 VMS DECwindows Motif 17.3.9 VMS Workstation Software 17.4 Third-Party VMS CASE Tools 17.4.1 EXCELERATOR 17.4.2 Software through Pictures 17.4.3 Statemate 17.4.4 TEAMWORK 18 UNIX CASE Tools in the COHESION Environment 18.1 DECset Tools for ULTRIX Systems 18.1.1 SCCS Code Manager 18.1.2 CMS to SCCS Library File Converter 18.1.3 make Program Builder 18.1.4 DEC Test Manager 18.1.5 dbx Program Debugger 18.1.6 DEC Language-Sensitive Editor 18.1.7 DEC Performance and Coverage Analyzer 18.1.8 DEC Source Code Analyzer 18.2 PC DECwindows Display Facility 18.3 Network Application Support (NAS) for ULTRIX 18.3.1 NAS 200 for ULTRIX: Integration at the Desktop 18.3.2 NAS 300 for ULTRIX: Distributed Client/Server Computing 18.4 FUSE Tools for UNIX Systems 18.4.1 FUSE Control Panel 18.4.2 FUSE Builder 18.4.3 FUSE Call Graph Browser 18.4.4 FUSE Code Manager 18.4.5 FUSE Cross-Referencer 18.4.6 FUSE Debugger 18.4.7 FUSE Editors 18.4.8 FUSE Online Help 18.4.9 FUSE Profiler 18.4.10 FUSE EnCASE Kit 18.4.11 DEC FUSE C++ Support Kit 18.4.12 DEC FUSE Support for DEC C++ Kit 19 DECfactory Products in The Realtime Environment 19.1 Digital's DECfactory Services 19.2 BASEstar to Integrate Manufacturing Applications and Devices 19.2.1 Application Integration 19.2.2 Device Integration 19.2.3 Configuration Management 19.2.4 BASEstar CIMfast for Application Development 19.3 DECmessageQ for Application Communications 19.4 DEComni to Simplify Device Integration 19.5 DECosap to Link Siemens Devices 19.6 @aGlance to Access Data 20 DECmessageQ in the Realtime Environment 20.1 DECmessageQ Overview 20.1.1 DECmessageQ Services 20.1.2 DECmessageQ Features 20.1.3 DECmessageQ Queues 20.1.4 Message Selection 20.1.5 Message Recovery 20.1.6 DECmessageQ Application Programming Interface 20.2 DECmessageQ for UNIX 20.2.1 DECmessageQ for UNIX Message Recovery Services 20.2.2 DECmessageQ for UNIX Selective Broadcast Services 20.3 DECmessageQ for VMS 20.3.1 DECmessageQ for VMS Message Recovery Services 20.3.2 DECmessageQ for VMS Selective Broadcast Services 20.3.3 DECmessageQ for VMS Developer's Tool Kit 20.3.4 DECmessageQ for VMS LU6.2 Services 20.4 DECmessageQ Hardware and Software Requirements 20.4.1 DECmessageQ Hardware Requirements 20.4.2 DECmessageQ Software Requirements 20.4.3 DECmessageQ System Configuration Part VII DEC Realtime Integrator 21 DEC Realtime Integrator Overview 21.1 DEC Realtime Integrator General Features 21.2 DEC Realtime Integrator Use 21.3 DEC Realtime Integrator for VAXELN 21.4 DEC Realtime Integrator Hardware and Software Requirements 22 DEC Realtime Integrator Programming 22.1 Programming Environment 22.2 Icon Libraries 22.2.1 Hardware Input/Output Library 22.2.2 Software Input/Output Library 22.2.3 Text Manipulation Library 22.2.4 Signal Processing Library 22.2.5 Control Library 22.2.6 Data Display Library 22.2.7 Panel Input Library 22.3 Subroutine Libraries 22.3.1 Laboratory Input/Output (LIO) Library 22.3.2 Laboratory Signal Processing (LSP) Library 22.3.3 Laboratory Graphics Package (LGP) Library Part VIII Realtime Hardware 23 Realtime Hardware Overview 24 Realtime Hardware Product Families 24.1 Overview of Hardware Products for Realtime Systems 24.2 Realtime Chip-Level Processors 24.2.1 rtVAX 300 24.3 Realtime Single-Board Computers 24.4 Workstations for Realtime Systems 24.4.1 Workstation Overview 24.4.2 The VAXstation 4000 Family 24.4.2.1 The VAXstation 4000 VLC 24.4.2.2 The VAXstation 4000 Model 60 24.4.2.3 The VAXstation 4000 Model 90 24.4.3 The DECstation 5000 Family 24.4.3.1 The Personal DECstation 5000 Series 24.4.3.2 The DECstation 5000 Model 133 24.4.3.3 The DECstation 5000 Model 240 24.5 MicroVAX 3100 Realtime Workstations 24.6 rtVAX Realtime VAX Systems 24.6.1 rtVAX 3300/3305/3400 Realtime Systems 24.6.2 rtVAX 4000 Family of Realtime Systems 24.6.3 rtVAX 6000 Family of Realtime Systems 24.6.4 rtVAX 9000 Model 110 and 310 Systems 24.7 VAX and MIPS-Based Systems 24.7.1 The DECsystem 5900 Server 24.7.2 VAX 6000 Systems 25 Realtime Options 25.1 Q22-bus Options 25.1.1 AAV11-C Digital-to-Analog Converter Module 25.1.2 AAV11-DA Digital-to-Analog Converter Module 25.1.3 ADQ32 Analog-to-Digital Converter Module 25.1.4 ADV11-C Analog-to-Digital Converter Module 25.1.5 ADV11-DA Analog-to-Digital Converter Module 25.1.6 AXV11 Analog Input/Output Module 25.1.7 DECscan Products for BITBUS Interconnection 25.1.7.1 IBQ01 DECscan BITBUS Controller Module 25.1.7.2 QA-VCJAA DECscan Driver Package 25.1.7.3 QA-VCSAA VAX DECscan VMS Toolkit 25.1.8 DRQ3B Parallel-Line Interface Module 25.1.9 DRV1J and DRV11J Parallel-Line Interface Modules 25.1.10 DRV11-WA and DRV1W Parallel-Line Interface Modules 25.1.11 IEQ11-AB,AD,AF IEC/IEEE-488 Bus Interface Modules 25.1.12 KWV11-C Programmable Realtime Clock Module 25.1.13 Universal Data Interface Panels 25.2 SCSI Bus Options 25.2.1 IEZ11 SCSI-to-IEEE-488 Bus Converter Module 25.3 TURBOchannel Bus Options 25.3.1 DWTVX and DWTVA TURBOchannel-to-VME Adapters 25.3.2 IET11 TURBOchannel-to-IEEE-488 Adapter 25.4 VAXBI Bus Options 25.4.1 DRB32-M,W,E Parallel-Line Interface Modules 25.4.1.1 DRB32-M Parallel-Line Interface Module 25.4.1.2 DRB32-W Parallel-Line Interface Module 25.4.1.3 DRB32-E Parallel-Line Interface Module 25.4.2 KA800-M Processor Board 25.4.3 MS820-CA Memory Module 25.5 XMI-to-VMEbus Option 25.6 Industrial Terminals 25.6.1 IT330 and IT340 Industrial Terminals 25.6.2 VT33N and VT34N Industrial Terminals A Associated Documents B Trademarks Glossary application device . . . circuit client . . . counting semaphore data access protocol (DAP) . . . Digital Document Interchange Format (DDIF) Digital Tabular Interchange Format (DTIF) . . . function gateway . . . interrupt service routine (ISR) interrupt service routine (ISR) latency . . . MacX X Window System Server main memory . . . multitasking mutex . . . OSF/1 PAL (phase-alternating line) . . . POSIX (Portable Operating System Interface for Computer Environments) preemptive kernel . . . queue ready state . . . runtime library runtime software . . . symbolic debugging symmetric multiprocessing (SMP) . . . UIS (User Interface Services) UISX (User Interface Services X) . . . virtual memory (VM) driver wait state . . . WYSIWYG FIGURES 1-1 Realtime Software Products 2-1 Typical Minimum Configuration for DECelx 2-2 Downloading a Program 3-1 DECelx Network Components 4-1 Development System/Target System Relationship 5-1 Process Family 5-2 Loosely Coupled Multiprocessing Configuration 5-3 Tightly Coupled Symmetric Multiprocessing Configuration 5-4 Closely Coupled Multiprocessing Configuration with VAXELN Primary System 5-5 Closely Coupled Multiprocessing Configuration with VMS Primary System 6-1 Preparing a VAXELN System Image 6-2 VAXELN System Software 6-3 Process State Transitions 6-4 Memory Allocation 6-5 VAXELN Remote Debugger Environment 6-6 VAXELN Local Debugger Environment 7-1 DECwindows Architecture 8-1 Sample VAXELN Window Server Configuration 14-1 Developing a Typical VAXELN Ada System 15-1 Developing a Typical XD Ada System 19-1 Integration of DEComni and DECosap 20-1 DECmessageQ Communication Paths 21-1 DEC Realtime Integrator in Digital's Distributed Realtime Architecture 22-1 Signal Processing Icons TABLES 2-1 DECelx Development Tools by Target 2-2 R3000 Target Board Summary 2-3 Motorola Target Board Summary 3-1 Synchronization Routines Available in DECelx POSIX 3-2 DECelx POSIX Process Synchronization Functions 6-1 Kernel Objects 6-2 Data Structures for Optimizing Area and Binary Semaphore Operations 6-3 Kernel Operations 6-4 Process States 6-5 Types of Exceptions 6-6 Exception-Handler Operations 6-7 VAXELN POSIX Process Synchronization Functions 6-8 VAXELN POSIX Communication Functions 6-9 VAXELN POSIX Memory-Locking Functions 6-10 KAV30 Routine Summary 6-11 Device-Handling Operations 6-12 VAXELN Internet Services Protocols 7-1 Sample DECwindows User Interface 10-1 VMS POSIX Process Synchronization Functions 10-2 VMS POSIX Interprocess Communication Functions 10-3 VMS POSIX Realtime Performance Functions 12-1 DEC OSF/1 Clock and Timer Functions 12-2 DEC OSF/1 Process Priority Scheduling Functions 12-3 DEC OSF/1 Memory-Locking Functions 12-4 DEC OSF/1 Asynchronous I/O Functions 12-5 DEC OSF/1 Shared Memory and Memory Mapped File Functions 12-6 DEC OSF/1 Semaphore Functions 20-1 DECmessageQ Basic Service Functions 20-2 DECmessageQ Extended Service Functions 20-3 DECmessageQ for VMS LU6.2 Services Limits 22-1 Hardware I/O Icons 22-2 Software I/O Icons 22-3 Text Manipulation Icons 22-4 Signal Processing Icons 22-5 Control Icons 22-6 Data Display Icons 22-7 Panel Input Icons 24-1 Workstation Products 24-2 Graphics Options for All DECstation 5000 Systems 24-3 rtVAX Products