process table

A table containing all of the information that must be saved when the CPU switches from running one process to another in a multitasking system.

The information in the process table allows the suspended process to be restarted at a later time as if it had never been stopped. Every process has an entry in the table. These entries are known as process control blocks and contain the following information:

process state - information needed so that the process can be loaded into memory and run, such as the program counter, the stack pointer, and the values of registers.

memory state - details of the memory allocation such as pointers to the various memory areas used by the program

resource state - information regarding the status of files being used by the process such as user ID.

Accounting and scheduling information.

An example of a UNIX process table is shown below.

 SLOT  ST  PID  PGRP  UID  PRI  CPU  EVENT  NAME  FLAGS
  0    s    0     0     0   95   0  runout  sched load sys
  1    s    1     0     0   66   1    u     init  load
  2    s    2     0     0   95   0  10bbdc  vhand load sys

SLOT is the entry number of the process.

ST shows whether the process is paused or sleeping (s), ready to run (r), or running on a CPU (o).

PID is the process ID.

PGRP is the process Group.

UID is the user ID.

PRI is the priority of the process from 127 (highest) to 0 (lowest).

EVENT is the event on which a process is paused or sleeping.

NAME is the name of the process.

FLAGS are the process flags.

A process that has died but still has an entry in the process table is called a zombie process.