Guardian Application Conversion Guide
An Approach to Converting an Application
Introduction
1–6 096047 Tandem Computers Incorporated
Server Processes That Care About Their Creator’s Identity
Some processes check the identity of the process that creates them. Such a process
might, for example, compare that process identifier with the sender of the Startup
message to make sure that the sender is also the creator.
Some changes might be necessary if the creator runs at a high PIN; the server needs to
be able to obtain the identity of a high-PIN creator and a high-PIN opener.
Server Processes That Do Track Processes That Open Them
This type of server keeps a table of processes that open it. If the server uses the CPU
and PIN to uniquely identify processes that open it, the server must be converted to
understand the PIN of a high-PIN process. In many cases, however, all that is
necessary is to set the HIGHREQUESTERS attribute for the server.
Monitor Process Pairs That Create and Track Other Processes
Monitor process pairs create, monitor, and control other processes. They also keep
tables of information about the attributes of these processes. If they create and track
high-PIN processes, some changes to your application are required.
An Approach to
Converting an
Application
A typical application consists of several processes that communicate with each other to
achieve a specific objective. Converting an application involves changing parts of each
process. If you are converting an application, you might consider the approach for the
application shown below. This application consists of these processes:
$REQ A requester process that creates, opens, and sends requests to the server
process $SRV. $REQ also monitors and manages $SRV. Process $REQ is
started from a terminal using the TACL RUN command. By default, TACL
starts a new process at a high PIN if possible.
$SRV A server process that is opened by the requester process $REQ and receives
requests from $REQ. $SRV also maintains an opener table to track its openers.
The goal of the approach listed below and shown in Figure 1-2 is for both $REQ and
$SRV to run at high PINs.
1. Convert the requester $REQ and the server $SRV to run at high PINs.
2. Convert the requester $REQ to create the server $SRV at a high PIN and then to
manage the high-PIN $SRV process (for example, to suspend or stop it).
3. Convert the requester $REQ to open and send requests to $SRV and to monitor the
high-PIN $SRV process.
4. Convert the server $SRV to receive requests from the requester $REQ and to
maintain an opener table.
5. Convert other parts of the requester $REQ and server $SRV as needed, such as
managing extended memory and files.