Open System Services Programmer's Guide

Creator processes and the process run-time environment are defined differently for the two types
of processes. In the OSS environment, methods for creating a new process are:
fork() creates a new OSS process, running the same program image as the calling process,
in the same CPU. tdm_fork() is a variant of fork() that permits access to additional
process attributes.
exec...() associates a new program image with the current OSS process. Functions in the
exec...() family of functions are: execl(), execle(), execlp(), execv(),
execve(), execvp(), tdm_execve(), and tdm_execvep().
fork() + exec() is the traditional way to create a new OSS process running a different
program image.
tdm_spawn() is an alternative approach that effectively performs both the fork() and the
exec(). (That is, creates a new process and associates it with a new program image.)
PROCESS_SPAWN_ is another alternative; it is a Guardian procedure that creates an OSS
process with Guardian ancestry.
Process Identification
Table 2 shows the ways in which OSS processes and Guardian processes can be identified.
Processes always have “required” identifiers, never have identifiers that are “not available,” and
might have those classified as “optional.” You can specify optional identifiers when you call
process-creation procedures or functions.
Table 2 OSS and Guardian Process Identifiers
Guardian ProcessOSS ProcessProcess Identifier
Not availableRequiredOSS Process ID
RequiredRequiredProcess file name
RequiredRequiredProcess handle
OptionalOptionalProcess name
The following list defines the OSS and Guardian process identifiers:
OSS Process ID
Uniquely identifies an OSS process within a node.
Process file name
Uniquely identifies an OSS or Guardian process within a NonStop network, in printable string
format.
Process handle
Uniquely identifies an OSS or Guardian process within a NonStop network, in internal format.
Process name
Uniquely identifies a named OSS or Guardian process within a NonStop system.
Though every process has a process file name and a process handle, their explicit use in APIs is
not always necessary. The process handle is typically used with Guardian procedures that query
or modify process state; the process file name is typically used to open a process for inter-process
communication via the Guardian file system. Process file name, process handle, and process name
are Guardian concepts and seldom used for OSS processes.
Process Groups
An OSS process can belong to a process group, which is identified by a group ID. Processes in
the same group can be treated collectively; for example, all processes in a group that are active
at the same time can receive the same job control signals. Therefore, when you enter a command
Two Process Types 33