- Process control block
A Process Control Block (PCB, also called Task Control Block or Task Struct) is a data structure in the
operating system kernel containing the information needed to manage a particular process. The PCB is "the manifestation of a process in an operating system". [cite book |last=Deitel |first=Harvey M. |title=An introduction to operating systems |origyear=1982 |url=http://portal.acm.org/citation.cfm?id=79046&dl=GUIDE&coll=GUIDE |edition=revisited first edition |year=1984 |publisher=Addison-Wesley |id=ISBN 0-201-14502-2 |pages=673 pages 57-58]Included information
Implementations differ, but in general a PCB will include, directly or indirectly:
* The identifier of the process (a
process identifier , or PID)
* Register values for the process including, notably,
*: theProgram Counter value for the process
* Theaddress space for the process
* Priority
* Process accounting information, such as when the process was last run, how much CPU time it has accumulated, etc.
* Pointer to the next PCB i.e. pointer to the PCB of the next process to run
* I/O Information (i.e. I/O devices allocated to this process, list of opened files, etc)During a
context switch , the running process is stopped and another process is given a chance to run. The kernel must stop the execution of the running process, copy out the values in hardware registers to its PCB, and update the hardware registers with the values from the PCB of the new process.Location of the PCB
Since the PCB contains the critical information for the process, it must be kept in an area of memory protected from normal user access. In some operating systems the PCB is placed in the beginning of the kernel stack of the process since that is a convenient protected location. [Yong, Zhang, "Breaking through the Maximum Process Number", "Linux Journal", 1 Jan 2004, [http://www.linuxjournal.com/article/4407] .]
Notes
Wikimedia Foundation. 2010.