7.1 The Process

Ritchie and Thompson in their paper define a “process” as the execution of an “image”, where the “image” is the current state of a pseudo-computer, i.e. an abstract data structure, which may be represented in either main memory or on disk.

The process image involves two or three physically distinct areas of memory:

(1)

the “proc” structure, which is contained within the core resident “proc” array and is accessible at all times;

(2)

the data segment, which consists of the “per process data area”, combined with a segment containing the user program data, (possibly) program text, and stack;

(3)

the text segment, which is not always present, consists of a segment containing only pure program text i.e. re-entrant code and constant data.

Many programs do not have a separate text segment. Where one is defined, a single copy will be shared among all processes which are executions of the same particular program.