Guardian Application Conversion Guide
Creating and Managing a High-PIN Process
Converting TAL Applications
3–14 096047 Tandem Computers Incorporated
Creating a
High-PIN Process
To convert a program to create a high-PIN process, follow the steps in this subsection.
The ZSYSTAL file contains LITERAL declarations that you can use with the
PROCESS_CREATE_ procedure. This subsection describes:
How to programmatically create high-PIN processes in a waited manner
How to programmatically create high-PIN processes in a nowait manner
For information on how to interactively create a high-PIN process using TACL, refer to
Section 7, “Converting TACL Programs.”
To avoid running out of low PINs, we usually recommend running application
processes at high PINs. However, because the rules for communicating between
processes make it impossible for an unconverted low-PIN process to communicate
with a high-PIN process, you sometimes must run a given process at a low PIN.
The inherited force-low characteristic of a process usually causes a process with
ancestors on C-series systems to run at a low PIN to enable the ancestor to open the
process and communicate with it. You have the option to override the inherited force-
low characteristic.
Appendix C, “System Compatibility,” explains the rules for communicating with high-
PIN and low-PIN processes among C-series systems and D-series systems, including
details on the inherited force-low characteristic.
Creating a High-PIN Process in a Waited Manner
Your existing program might call the NEWPROCESS procedure to create a process in a
waited manner:
CALL NEWPROCESS (program^file,
priority,
memory^pages,
processor,
process^id,
error);
To convert your program to create a high-PIN process in a waited manner, you must
make the following changes in your source code:
1. Use the PROCESS_CREATE_ procedure rather than the NEWPROCESS
procedure. NEWPROCESS always creates a low-PIN process.
2. Each file-name parameter must be a variable-length string with its length specified
as a separate integer value. Set the
program^file
parameter and, if needed, the
library^file
,
swapfile
, and
ext^swapfile
parameters and their respective
lengths.
3. Set the
nowait^tag
parameter to -1D, or omit this parameter from the call.
4. If you use the
create^options
parameter, make sure that bit 15 is zero. If you
do not use
create^options
, this bit is zero by default. If this bit is not zero, the
system creates the process at a low PIN.