Open System Services Programmer's Guide
Pipes and FIFOs are memory-resident interprocess channels through which OSS processes can
communicate. OSS processes having a common ancestor can communicate through a pipe, but
common ancestry is not required for OSS processes to communicate through a FIFO, which is a
named pipe.
OSS processes can share memory segments using shared-memory functions. OSS semaphores
allow multiple processes to synchronize access to shared memory segments to avoid compromising
the integrity of the data in those segments.
OSS processes can also communicate by sending and receiving messages using OSS
message queues.
Features Unique to OSS Interprocess Communication
The following is a summary of the features that are unique to OSS interprocess communication:
• On servers running J06.12 or later J-series RVUs, or H06.23 or later H-series RVUs, there is
no configured limit to the number of OSS shared memory segments that can be attached by
one process. The number of OSS shared memory segments that can be attached is limited by
system resources only.
On servers running earlier J-series RVUs, earlier H-series RVUs, or G-series RVUs, a process
can attach no more than 13 segments at one time. If an attached segment is larger than 32
MB the maximum number of attached segments is reduced.
• OSS processes can share and synchronize access to memory segments within the same
processor.
• The OSS sockets API supports features that allow the use of alternate TCP processes within a
node.
• The ftok() function, which generates an OSS interprocess-communication key, is an optional
function in XPG4, Version 2, and is included in the OSS API.
• The OSS sockets functions do not return the errno value ENOSR.
• The OSS sockets functions can return errno values that are HP extensions to the XPG4
specification.
• sockatmark(), socket_transport_name_get(), and
socket_transport_name_set() are HP extensions to the XPG4 specification
• OSS processes can use Guardian AF_INET and AF_INET6 sockets APIs.
• Beginning with the H06.24 and J06.13 RVUs, access to 64-bit memory is supported on:
64-bit OSS processes◦
◦ 32-bit OSS processes
◦ Native Guardian processes
For information about sharing 64-bit memory, see “Sharing Memory Between 32-Bit and 64-Bit
Processes” (page 290).
Interprocess-Communication Interoperability
OSS and Guardian processes can communicate as described in the following subsections:
• “Using Guardian AF_INET and AF_NET6 Sockets, and OSS AF_INET and AF_INET6
Sockets” (page 177)
• “Using AF_UNIX Sockets” (page 187)
• “Using FIFOs” (page 189) (named pipes)
176 Interprocess Communication










