Introduction to VAXELN

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  Part I    The VAXELN Toolkit

  1      VAXELN - Solving Problems in Real Time

  1.1     The Challenge of Dedicated, Real-Time Applications

  1.2     Meeting the Challenge with VAXELN

  1.3     Tools for Real-Time Problem Solving

  1.4     VAXELN Applications: Powerful, Dedicated Solutions

  1.5     Learning More About VAXELN

  2      Host System Software

  2.1     The VAXELN Pascal Compiler

  2.2     The VAXELN Libraries

  2.3     The VAXELN System Builder

  2.4     The VAXELN Debugger

  3      Run-Time Software

  3.1     The VAXELN Kernel

  3.2     Run-Time Support Software

  3.3     The System Image

  4      Creating a VAXELN Application

  4.1     Check Your System Resources

  4.2     Editing System Builder Menus

  4.3     Create the Sample Application

  Part II    Programming with VAXELN

  5      Concurrent Jobs and Processes

  5.1     Jobs and Processes

  5.2     Process States

  5.3     Priorities and Scheduling

  6      Synchronizing Processes

  6.1     Synchronization:  Waiting at the Intersection

  6.2     Synchronizing by Waiting for a Specified Time

  6.3     Synchronizing by Waiting for Other Processes

  6.4     Synchronizing by Waiting for Semaphores

  6.5     Synchronizing by Waiting for Events

  7      Communication

  7.1     Communication Between Processes
    7.1.1      Data Sharing
    7.1.2      Queues

  7.2     Communication Between Jobs
    7.2.1      Message Passing
    7.2.2      Areas

  8      Responding to Real-Time Events

  8.1     Responding to Exceptions

  8.2     Responding to Device Interrupts

  Part III    Creating a VAXELN Application

  9      Designing an Application

  9.1     The Requirements for a Sample Application:  A Scenario

  9.2     Creating the General Design

  9.3     Creating the Detailed Design
    9.3.1      Design Issue:  Interjob Communication and Synchronization
    9.3.2      Design Issue:  Interprocess Communication
    9.3.3      Design Issue:  Interprocess Synchronization
    9.3.4      Design Issue:  General Purpose Routines
    9.3.5      Writing the Specification

  10     Implementing an Application

  10.1    Selecting a Development Environment

  10.2    Selecting a Programming Language

  10.3    Coding the Application
    10.3.1     Coding the Number-Generating Job in C
    10.3.2     Coding the Number-Receiving Job in VAXELN Pascal

  11     Building an Application

  11.1    Creating a System Image for Debugging

  11.2    Creating a System Image to Run Directly on a Target

  12     Debugging an Application

  12.1    Using the Debugger

  12.2    Debugging the Application

  13     Running an Application

  13.1    Down-Line Loading an Application with the Debugger

  13.2    Down-Line Loading an Application with the Network Control Program

  13.3    Advancing with VAXELN

  A   Sample VAXELN Application

  A.1     SAMPLE_SENDER.C

  A.2     SAMPLE_GLOBALS.PAS

  A.3     SAMPLE_RECEIVER.PAS

  A.4     SAMPLE_UTILITIES.PAS

  B   Pascal and FORTRAN Number Generators

  B.1     Pascal Number Generator
    B.1.1     Compiling and Linking SAMPLE_SENDER.PAS
    B.1.2     SAMPLE_SENDER.PAS

  B.2     FORTRAN Number Generator
    B.2.1     Compiling and Linking SAMPLE_SENDER.FOR and SAMPLE_CCTIME.C
    B.2.2     SAMPLE_SENDER.FOR
    B.2.3     SAMPLE_CCTIME.C

  EXAMPLES

  3-1        Creating a Process in VAXELN Pascal

  3-2        Creating a Process in C

  6-1        Synchronizing by Waiting for an Object

  6-2        Waiting for an Interval and Absolute Time

  6-3        Waiting for a Process

  6-4        Synchronizing Processes with Semaphores and Mutexes

  6-5        Synchronizing Processes with Events

  7-1        Using Queues for Interprocess Communication

  7-2        Using Messages for Interjob Communication and Synchronization

  7-3        Sharing Data Between Jobs by Using Areas

  8-1        Responding to Run-Time Exceptions

  8-2        A Simple Device Driver

  FIGURES

  1-1        A VAXELN Application Controls a Space Vehicle

  1-2        Host and Run-Time System Software

  2-1        System Builder Main Menu

  2-2        Building a VAXELN System

  2-3        A Remote Debugging Configuration

  2-4        A Local Debugging Configuration

  2-5        The Debugger Screen

  3-1        A VAXELN System Image

  4-1        System Builder Main Menu

  4-2        Program Description Menu

  4-3        Edit System Characteristics Menu

  4-4        Select Target Processor Menu

  4-5        Initial Debugger Screen - Pascal Example

  4-6        Initial Debugger Screen - C Example

  4-7        Final Debugger Screen

  5-1        Creating Jobs and Processes in Virtual Memory

  5-2        Jobs:  Families of Processes

  5-3        Process State Transitions

  5-4        Scheduling Queues Within a System

  7-1        A VAXELN Queue

  7-2        Processes Exchanging Data Through Queues

  7-3        Communicating Using a Datagram

  7-4        Communicating over a Circuit

  9-1        The First Level of Task Analysis

  9-2        The Second Level of Task Analysis:  Number-Receiving Task

  9-3        The Second Level of Task Analysis:  Sending Task

  9-4        The Application Task Assigned to Jobs and Processes

  9-5        Representing Multiple Processes Executing the Same Code

  9-6        Pseudo Code for the Number-Generating Job

  9-7        Pseudo Code for the Number-Receiving Job

  9-8        The Lottery-Number Scanner in Detail

  10-1       Code for the Number-Generating Job:  Master Process

  10-2       Code for the Number-Generating Job:  Sender Process

  10-3       Code for the Number-Receiving Job:  Master Process

  10-4       Code for the Number-Receiving Job:  Receiving Process

  10-5       Code for the Number-Receiving Job:  Tester Process

  13-1       A Sample Scanning Session from the Console

  TABLES

  2-1        VAXELN Run-Time Libraries

  2-2        Selected Debugger Commands

  3-1        VAXELN Kernel Objects

  3-2        VAXELN Kernel Procedures

  4-1        Menu Commands

  5-1        Process States

  6-1        WAIT Objects

  6-2        Absolute Time Specifications

  6-3        Interval Time Specifications

  8-1        The Device Description for the UNICRN11

  9-1        Execution of the Lottery Number Scanner

  11-1       System Builder Settings for Debugging the System Image

  11-2       System Builder Settings for the Production System Image