
- OS - Home
- OS - Needs
- OS - Overview
- OS - History
- OS - Components
- OS - Structure
- OS - Architecture
- OS - Services
- OS - Properties
- OS - TAT & WAT
- OS Processes
- OS - Processes
- OS - Process Scheduling
- OS - Scheduling Algorithms
- FCFS Scheduling Algorithm
- SJF Scheduling Algorithm
- Round Robin Scheduling Algorithms
- HRRN Scheduling Algorithms
- Priority Scheduling Algorithms
- Multilevel Queue Scheduling
- Context Switching
- Operations on Processes
- Lottery Process Scheduling
- Predicting Burst Time SJF Scheduling
- Race Condition Vulnerability
- Critical Section Synchronization
- Mutual Exclusion Synchronization
- Process Control Block
- Inter Process Communication
- Preemptive and Non-Preemptive Scheduling
- Operating System - Deadlock
- Introduction to Deadlock in Operating System
- Conditions for Deadlock in Operating System
- OS Synchronization
- Operating System - Process Synchronization
- Operating System - Critical Section
- Operating System - Semaphores
- Operating System - Counting Semaphores
- Operating System - Mutex
- Operating System - Lock Variable in Process Synchronization
- Operating System - Turn Variable in Process Synchronization
- Operating System - Bounded Buffer Problem
- Operating System - Reader Writer Locks in Process Synchronization
- Operating System - Test Set Lock in Process Synchronization
- Operating System - Peterson Solution in Process Synchronization
- Operating System - Monitors in Process Synchronization
- Operating System - Sleep and Wake in Process Synchronization
- OS Memory Management
- OS - Memory Management
- OS - Virtual Memory
- OS Storage Management
- File Systems in Operating System
- Linked Index Allocation in Operating System
- Indexed Allocation in Operating System
- Structures of Directory in Operating System
- File Attributes in Operating System
- Operating System - Page Replacement
- Operating Systems - Thrashing
- Belady’s Anomaly in Page Replacement Algorithms
- Optimal Page Replacement Algorithm
- Operating System - Types
- Types of Operating System
- Batch Processing Operating System
- Multiprocessing Operating System
- Hybrid Operating System
- Monolithic Operating System
- Zephyr Operating System
- Nix Operating System
- Blackberry Operating System
- Garuda Operating System
- Tails Operating System
- Clustered Operating System
- Haiku Operating System
- AIX Operating System
- Solus Operating system
- Tizen Operating System
- Bharat Operating System
- Fire Operating System
- Bliss Operating System
- VxWorks Operating System
- Embedded Operating System
- Single User Operating System
- OS Miscellaneous
- OS - Multi-threading
- OS - I/O Hardware
- OS - I/O Software
- OS - Security
- OS - Linux
- OS Useful Resources
- OS - Quick Guide
- OS - Useful Resources
- OS - Discussion
Operating Systems - Process Control Block
Process Control Block (PCB) is a data structure that contains information of the process related to it. The process control block is also known as a process descriptor or a task control block. The PCBs of the different processes are stored in a process table in the kernel of the operating system.
When a new process is created, the operating system initializes a process control block for it that stores the values of the parameters associated with the process as well as tracks the process state (i.e. new, ready, running, waiting or terminated).
PCBs are very important for process management for almost all process related activities. They are accessed and/or updated by many utility programs, like schedulers and resource managers. As PCBs track process state information, they play a vital role in context switching.
Structure of the Process Control Block
The process control stores many data items that are needed for efficient process management. Some of these data items are explained with the help of the given diagram −

The following are the data items −
- Process Number or ID − This shows the identification number of the particular process.
- Process State − This specifies the process state i.e. new, ready, running, waiting or terminated.
- Program Counter − This contains the address of the next instruction that needs to be executed in the process.
- Registers − This specifies the registers that are used by the process. They include accumulators, index registers, stack pointers, general purpose registers etc.
- List of Open Files − These are the different files that are associated with the process.
- CPU Scheduling Information − The process priority, pointers to scheduling queues etc. is the CPU scheduling information that is contained in the PCB. This may also include any other scheduling parameters.
- Memory Management Information − The memory management information includes the page tables or the segment tables depending on the memory system used. It also contains the value of the base registers, limit registers etc.
- I/O Status Information − This information includes the list of I/O devices used by the process, the list of files etc.
- Accounting Information − The time limits, account numbers, amount of CPU used, process numbers etc. are all a part of the PCB accounting information.
- Location of The Process Control Block − The process control block is kept in a memory area that is protected from the normal user access. This is done because it contains important process information. Some of the operating systems place the PCB at the beginning of the kernel stack for the process as it is a safe location.
Process Management Tasks That Utilize PCB
Process Control Blocks play an important role to perform various process management activities since they store the vital information related to the processes. Some of the major operations in which the details stored in PCBs are accessed frequently are enlisted as follows −
Context Switching
During context switching, the process state of the executing process is saved in the CPU register and a copy of it is stored in the corresponding PCB. The state of process which is selected for execution next is fetched from its PCB so that it can execute.
Process Scheduling
The operating system uses the contents of PCB such as process priority, process state, and resources utilized to schedule the processes from the ready queue. By assessing the priority and other related information, the scheduler determines the sequence of process execution.
Multitasking
The operating system can multitask and run various processes simultaneously with the help of information stored in PCBs like resource allocation, process scheduling, and process synchronization.
Resources Sharing
The information stored in the PCB includes the resources allocated to a process, like open files, shared variables, common tables and memory space. When a new process requests resources, the OS searches the allocated processes in the PCBs, checks whether they are shareable or not and allocates the resources accordingly. Thus PCBs play an important role in resource sharing.