Familial Relationships

Each process belonging to a process family is called a member of that process family. Every process family includes a single independent process as its founding member. The process family also includes any dependent offspring of that independent process, any dependent offspring of those offspring, and so on.

Familial terms are used to describe the relationships between the members of a process family. Of these, parent and offspring are defined under “Critical Blocks” earlier in this section. A related term is sibling. Offspring processes that have the same parent are referred to as siblings.

Each offspring of a process is considered a descendant of the process. Any offspring of the descendants of a process are also considered descendants of the original process.

Conversely, the parent of a process is considered to be an ancestor of the process, and any ancestors of the parent are also considered to be ancestors of the same process. Processes having a common ancestor, but not a common parent, are referred to as cousins. The independent process in a process family is the common ancestor of all the processes in that family.

Finally, processes are considered related if they belong to the same process family, and unrelated if they do not.

A dependent process is dependent on the continued existence of all its ancestors, not only its parent. This is true because a type of domino effect occurs if any of the ancestors terminates. The immediate offspring of the terminated process are discontinued with a “PARENT PROCESS TERMINATED” error. The offspring of the discontinued processes are, in turn, discontinued with the same error, and so on.

In contrast, a member of a process family does not depend on the continued existence of any of its descendants. For example, the descendants of a process can terminate abnormally without affecting the process.