Diagram of a Process Control Block (PCB)
- a data structure used in the OS code to represent one process
- the set of PCB’s is called the process table
- if an array is used to represent the process table, the index of the array may give the process id
- if a linked list is used to represent the process table, as shown below, the first field of each process control block may give the link to the next process control block
|
Process State |
Process Number (also called Process Id) |
CPU-Scheduling Info |
Program Counter |
Processor Status |
Registers |
Memory Management Info |
Open Files or Other I/O Status Information |
Accounting Info |
Pointer |
Process State |
Process Number (also called Process Id) |
CPU-Scheduling Info |
Program Counter |
Processor Status |
Registers |
Memory Management Info |
Open Files or Other I/O Status Information |
Accounting Info |
This example PCB contains:
- pointer: pointer to the next PCB
- process state: new, ready waiting, etc., which is used by the CPU scheduler
- process number: a unique identifier for the process
- CPU-scheduling info: process priority and pointers to scheduling queues or other scheduling parameters (depends on type of scheduling used)
- program counter (PC): indicates the address of the next instruction to be executed for this process (corresponds to a specialized register in the CPU)
- processor status (PS): indicates the status of the CPU after the most recent instruction was executed (corresponds to a specialized register in the CPU)
- registers: vary in number and type depending on machine architecture, but are likely to include general purpose registers (good for integers and addresses) and floating point registers.
- memory management info: information about memory assigned to the process, such as the values of the base and limit registers and pointers to the segment or page tables.
- open files or other I/O status info: stores pointers to files and devices that the process is currently using
- accounting info; CPU time and real (clock time) used by the process