solulubeta
Sign in
CS Theory / Operating Systems
01.02 · Lesson

Process & Thread Management

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).

3 min Free

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).
Mark this as done when you are finished.

Item 2 of 28 · updated 2026-10-12