MPE/iX 5.5 Operating System Limits
The FSIPC obeject is created when the files system is intialized during system bootup.
The FSIPC object can contain a maximum of 40,000,000 (40 million) entries. The
number of entries required to open a file depends on several factors explained below.
There are four different types of entries in the FSIPC object: message queue entries
(MQE), timer list entries (TLE), port entries, and free blocks. These entries are described
in more detail below.
Port entries
The first time a particular message file is opened, three port entries will be allocated in
this table. One of the port entries serves as the communication port for the process that
opened the message file. The other two ports are global read and write queues for the file.
Additional opens of the same message file will only require one port entry per open,
which will be used as a communication port.
Message files are not particularly useful unless they are opened by at least two processes.
As a result, at least four port entries will usually be required per message file in the
simplest case. If more than two processes have the file open, more port records will be
required.
Message queue entries
MQEs are allocated when an EOF condition is encountered during a read or write
operation. For reads, this occurs when a process tries to read from an empty message file.
For writes, this occurs when a process tries to write to a message file which is full (ie. has
hit the LIMIT for the file).
Usually, message files will have one or more MQE entries. The exact number of MQE
entries will depend on the nature of the application. Applications which use message files
tend to be structured as "producer/consumer" applications. One or more processes will
"produce" records for the message file (eg. writers), and one or more processes will
"consume" them (eg. readers).
If the writer processes are faster than the reader processes, then the message file may
reach the EOF. If an EOF condition is encountered when a writer is attempting to write a
new record to the message file, the process will block, and an MQE entry will be
allocated. This will happen for each writer that blocks. The number of MQE entries
required for any given message file will be less than or equal to the number of writer
processes. One way to minimize the possibility that this situation will occur is to ensure