Process & Thread Management
Process
A process is a program under execution. The value of the program counter (PC) indicates the address of the next instruction of the process being executed. Each process is represented by a Process Control Block (PCB).
Process States
The state of a process is defined in part by the current activity of that process. A process can be in one of the following states:
- New: The process is being created.
- Ready: The process is waiting to be assigned to a processor.
- Run: Instructions are being executed.
- Block or wait: The process is waiting for some event to occur (such as an I/O completion or reception of a signal).
- Completion or termination: The process has finished execution.
- Suspend ready: When the ready queue becomes full, some processes are moved to suspend ready state.
- Suspend wait or suspend block: When waiting queue becomes full.
Process Control Block (PCB)
Each process is represented in the operating system by a process control block (PCB) - also called a task control block. It contains many pieces of information associated with a specific process, including:
- Process state
- Program counter
- CPU registers
- CPU scheduling information
- Memory-management information
- Accounting information
- I/O status information
Thread
A thread is a lightweight process and forms the basic unit of CPU utilization. A process can perform more than one task at the same time by including multiple threads.
- A thread has its own program counter, register set, and stack.
- A thread shares resources with other threads of the same process: the code section, the data section, files and signals.
- fork() system call: A new thread, or a child process of a given process, can be introduced by using the fork() system call. A process with n fork() system call generates 2^n – 1 child processes.
- User threads: Implemented by users.
- Kernel threads: Implemented by OS.
Difference between Process and Thread
Key differences between a process and a thread:
- Process is heavy weight or resource intensive. Thread is light weight, taking fewer resources.
- Process switching needs interaction with operating system. Thread switching does not need to interact with operating system.
- In multiple processing environments, each process executes the same code but has its own memory and file resources. All threads can share same set of open files, child processes.
- If one process is blocked, then no other process can execute until the first process is unblocked. While one thread is blocked and waiting, a second thread in the same task can run.
- Multiple processes without using threads use more resources. Multiple threaded processes use fewer resources.
- In multiple processes each process operates independently of the others. One thread can read, write or change another thread’s data.
Process Scheduling Terms
Key metrics used in process scheduling:
- Arrival Time – Time at which the process arrives in the ready queue.
- Completion Time – Time at which process completes its execution.
- Burst Time – Time required by a process for CPU execution.
- Turn Around Time – Time Difference between completion time and arrival time (TAT = CT - AT).
- Waiting Time (WT) – Time Difference between turn around time and burst time (WT = TAT - BT).
Item 2 of 28 · updated 2026-10-12