QIO Configuration and Management Manual
Introduction to QIO
QIO Configuration and Management Manual—424717-008
1-9
Client Process Initialization
For more information about configuring and starting the QIO subsystem, see Section 2,
Configuring the QIO Subsystem.
QIOMON is created as a generic process. On NonStop S-series servers and on
Integrity NonStop NS-series servers, generic processes are created by the Kernel
subsystem and are started automatically when a processor is reloaded.
For more information about generic processes and the Kernel subsystem, see the SCF
Reference Manual for the Kernel Subsystem.
Client Process Initialization
After a client process is started, it acquires queues, buffers, and pool space from the
shared memory segment. This subsection describes the sequence of steps that a
client process completes to acquire resources from the shared memory segment. For
each step the client process uses one or more internal QIO library calls.
1. The client process attaches the shared memory segment to its data space.
2. The client process identifies itself with the QIO subsystem. This procedure creates
a module data structure in the shared memory segment. The module data structure
contains the process handle, which is used by the QIO subsystem to awaken the
client (for example, when an inbound message is received).
A module ID is returned to the client process. The module ID, which is unique
within a processor, is used by the client process for subsequent interaction with the
QIO subsystem.
The client process has the option of configuring a buffer space limit (which includes
space requirements in the form of pool space, control structures, and message
buffers) to a certain percentage of the total segment size. If the client process does
not set the buffer space limit, it defaults to 100 percent. This might be used, for
example, if you are running two QIO client processes (for example, TCP/IP and
IPX/SPX) in the same processor. You may want to assign 50 percent of the total
shared memory available to each client process. This would prevent a client
process from consuming all available shared memory.
3. The client process requests pool space from the QIO subsystem. Once acquired,
this space remains the private resource of the client process until it is released.
4. The client process registers with the designated LAN and port. This creates
inbound and outbound queues for the client process. The inbound queue is used to
hold message descriptors for data received from the LAN. The outbound queue is
used to hold message descriptors for data to be sent on the LAN. Each queue is
marked with an ID that identifies the client process to which it belongs. The QIO
subsystem returns queue identifiers to the client process.
An entry for the client process is made in an internal table that is used by the
Driver Interrupt Handler (DIH) to route inbound messages to the appropriate
inbound queue. The client process can then retrieve messages from its inbound
queue and return processed messages.