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. |