There is a Process Control Block for each process, enclosing all the information about the process. It is a data structure, which contains the following :

  • Process State - It can be running, waiting etc.
  • Process ID and parent process ID.
  • CPU registers and Program Counter. Program Counter holds the address of the next instruction to be executed for that process.
  • CPU Scheduling information - Such as priority information and pointers to scheduling queues.
  • Memory Management information - Eg. page tables or segment tables.
  • Accounting information - user and kernel CPU time consumed, account numbers, limits, etc.
  • I/O Status information - Devices allocated, open file tables, etc.

Process Control Block