HP 3000 Manuals

Interprocess Communication:Programmer's Guide : COPYRIGHT NOTICE [ Interprocess Communication:Programmer's Guide ] MPE/iX 5.0 Documentation


Interprocess Communication:Programmer's Guide

Interprocess Communication:Programmer's Guide 

Printed in U.S.A.

900 Series HP 3000 Computers
HP Part No.  32650-90019
Edition E1187
Printed Nov 1987

The information contained in this document is subject to change without
notice.

HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS
MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard
shall not be liable for errors contained herein or for incidental or
consequential damages in connection with the furnishing, performance or
use of this material.

Hewlett-Packard assumes no responsibility for the use or reliability of
its software on equipment that is not furnished by Hewlett-Packard.

This document contains proprietary information which is protected by
copyright.  All rights are reserved.  No part of this document may be
photocopied, reproduced or translated to another language without the
prior written consent of Hewlett-Packard Company.

Æ 1987 by HEWLETT-PACKARD COMPANY

Printing History 

New editions are complete revisions of the manual.  Update packages,
which are issued between editions, contain additional and replacement
pages to be merged into the manual by the customer.  The date on the
title page and back cover of the manual changes only when a new edition
is published.  When an edition is reprinted, all the prior updates to the
edition are incorporated.  No information is incorporated into a
reprinting unless it appears as a prior update.

First Edition             | November 1987             | A.01.00

List of Effective Pages 

The List of Effective Pages gives the date of the current edition, and
lists the dates of all changed pages.  Unchanged pages are listed as
"ORIGINAL" .  Within the manual, any page changed since the last edition
is indicated by printing the date the changes were made on the bottom of
the page.  Changes are marked with a vertical bar in the margin.  If an
update is incorporated when an edition is reprinted, these bars and dates
remain.  No information is incorporated into a reprinting unless it
appears as a prior update.

First Edition                       | November 1987
Documentation Map 

[]
[]
Preface The Interprocess Communication Programmer's Guide (32650-90019) is written for the experienced MPE XL programmer. It is a guide to the Interprocess Communication (IPC) features of the MPE XL operating system, describing what these features are and illustrating how to use them to make your programs more powerful. This manual forms part of the MPE XL Programmer's Series documentation. This series consists of the MPE XL Intrinsics Reference Manual (32650-90028) and a set of task-oriented user's guides. Before reading the Interprocess Communication Programmer's Guide you should know the information contained in two of these manuals: * The Process Management Programmer's Guide (32650-90023) explains the concept of "process" on MPE XL and describes the process handling commands and intrinsics available. Read this manual if you are unfamiliar with MPE XL process handling features. * The Accessing Files Programmer's Guide (32650-90017) discusses the MPE XL file system and the types of files supported on MPE XL. Read this manual if you are planning to use the file system features to perform IPC. Organization of This Manual Interprocess Communication contains the following chapters: Chapter 1 | What Is Interprocess Communication? defines | Interprocess Communication (IPC) and describes the | advantages of using it. Chapter 2 | IPC Using Job Control Words and Other Variables | discusses the use of predefined and user-defined | variables (including Job Control Words) in | performing IPC. Chapter 3 | IPC Using File System Intrinsics discusses how to | perform IPC using features of the MPE XL file | system, especially intrinsics. Chapter 4 | Special Cases of IPC explains how to use file | system IPC in certain complex situations, or when | special features are necessary. Chapter 5 | NOWAIT I/O describes the NOWAIT I/O feature of the | file system and the intrinsics you use to set it | up. Chapter 6 | Software Interrupts discusses the use of another | file system feature, software interrupts, and how | to write, initialize, and disarm them. Chapter 7 | IPC Using the MAIL Facility describes the MAIL | facility, used in some systems to perform | interprocess communication. Appendix A | Features of Intrinsics for Message Files provides | additional information about certain intrinsics | used with message files in performing IPC. Appendix B | Sample Programs: WAIT I/O illustrates the use of | message files and WAIT I/O to perform interprocess | communication. Appendix C | Sample Programs: NOWAIT I/O provides examples | showing the use of NOWAIT I/O in interprocess | communication. Appendix D | Sample Programs: Software Interrupts contains two | sets of programs (one set in SPL and one in | Pascal) showing the use of software interrupts in | IPC. How to Use This Manual If you are unfamiliar with the concept of IPC, or the types of situations in which using it can be helpful, read Chapter 1. Chapter 2 will be helpful if you want to perform simple IPC within a single job or session. Chapters 3 through 6, and the Appendixes, treat the features of the MPE XL file system that you can use to perform IPC across job or session boundaries. Refer to Chapter 7 if the MAIL facility is already in use on your system; this feature is not recommended if you are creating new programs or applications on MPE XL. Conventions NOTATION | DESCRIPTION UPPERCASE | Within syntax statements, characters in | uppercase must be entered in exactly the order | shown, though you can enter them in either | uppercase or lowercase. For example: | | SHOWJOB | Valid entries: showjob ShowJob SHOWJOB | Invalid entries: shojwob ShoJob SHOW_JOB italics | Within syntax statements, a word in italics | represents a formal parameter or argument that | you must replace with an actual value. In the | following example, you must replace filename | with the name of the file you want to release: | | | RELEASE filename punctuation | Within syntax statements, punctuation | characters (other than brackets, braces, | vertical parallel lines, and ellipses) must be | entered exactly as shown. { } | | Within syntax statements, braces enclose | | required elements. When several elements | | within braces are stacked, you must select | | one. In the following example, you must | | { ON } | select ON or OFF: SETMSG { OFF} [ ] | Within syntax statements, brackets enclose | optional elements. In the following example, | brackets around ,TEMP indicate that the | parameter and its delimiter are optional: | | PURGE {filename} [,TEMP] | | When several elements with brackets are | | stacked, you can select any one of the | | elements or none. In the following example, | | you can select devicename or deviceclass or | | [ devicename ] | neither: SHOWDEV [ deviceclass] NOTATION | DESCRIPTION [...] | Within syntax statements, a horizontal | ellipsis enclosed in brackets indicates that | you can repeatedly select elements that appear | within the immediately preceding pair of | brackets or braces. In the following example, | you can select itemname and its delimiter zero | or more times. Each instance of itemname must | be preceded by a comma: | | [,itemname][...] | If a punctuation character precedes the | ellipsis, you must use that character as a | delimiter to separate repeated elements. | However, if you select only one element, the | delimiter is not required. In the following | example, the comma cannot precede the first | instance of itemname: | | [itemname][,...] |...| | Within syntax statements, a horizontal | | ellipsis enclosed in parallel vertical lines | | indicates that you can select more than one | | element that appears within the immediately | | preceding pair of brackets or braces. | | However, each element can be selected only one | | time. In the following example, you must | | select ,A or ,B or ,A,B or ,B,A : { ,A}|...| | { ,B} | | If a punctuation character precedes the | | ellipsis, you must use that character as a | | delimiter to separate repeated elements. | | However, if you select only one element, the | | delimiter is not required. In the following | | example, you must select A or B or AB or BA. | | The first element cannot be preceded by a | | { A} | comma: { B}|,...| ... | Within examples, horizontal or vertical | ellipses indicate where portions of the | example are omitted. Å | Within syntax statements, the space symbol Å | shows a required blank. In the following | example, you must separate modifier and | variable with a blank: | | SET[(modifier)]Å(variable); shading | Within an example of interactive dialog, | shaded characters indicate user input or | responses to prompts. In the following | example, OMEGA is the user's response to the | NEW NAME prompt: | | NEW NAME? OMEGA NOTATION | DESCRIPTION [[ ]] | The symbol [[ ]] indicates a key on the | terminal's keyboard. For example, [[CTRL]] | indicates the Control key. [[CTRL]] char | [[CTRL]] char indicates a control character. | For example, [[CTRL]] Y means you have to | simultaneously press the Control key and the Y | key on the keyboard. base prefixes | The prefixes %, #, and $ specify the numerical | base of the value that follows: | | %num specifies an octal number. | #num specifies a decimal number. | $num specifies a hexadecimal number. | When no base is specified, decimal is assumed. Bit (bit:length) | When a parameter contains more than one piece | of data within its bit field, the different | data fields are described in the format Bit | (bit:length), where bit is the first bit in | the field and length is the number of | consecutive bits in the field. For example, | Bits (13:3) indicates bits 13, 14, and 15: most significant least significant |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| | 0| | | | | | | | | | | | |13|14|15| |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| Bit (0:1) Bits(13:3)


MPE/iX 5.0 Documentation