Process Concepts

A process is program in execution in a modern time-sharing computer. A process needs resources such as CPU, memory, and input-output devices. OS is responsible for creating, deleting, and maintaining process information.

Understanding Processes

Therefore, we can safely say the following things about the process:

  • A process is an instance of a program in execution in a time-sharing computer.
  • All processes are executed sequentially.
  • A process may or may not call another process.
  • A process is an ongoing activity of computer, defined by the program counter and data contents of processor registers.

Each process gets address space (virtual) which consists following:

  • Stack address space
  • Data address space
  • Space for source code

See the figure below.

Process Address Space
Figure 1 – Process Address Space

Stack Address space – The stack space is used for functions and system calls. The system calls are functions that belong to OS.

Data Address Space – A process will not execute unless all the required information is available. The process keeps both static and dynamic allocated variables in its data space.

Source Code Space – The source code section contains read-only code so that the process does not modify it. This address space contains only text information.

Many instances of a program mean multiple addresses will be created, one for each instance.

Process Operations

The operation on the process is:

  • creating a new process
  • terminating a process

Every time a new process is created it gets an ID. The getpid() and getppid() allows a process to get their process id. A process is created by OS as soon as a program is loaded into the memory. The OS provides the necessary resources for the process. The running process can change state and can be terminated using various system calls.


Creates a new child process which is a copy of the parent with a new pid. The child process gets its own pid, address space, but return different values.


The exec() runs a list of system calls and replaces the current process with a named program. The entire address space of the current process is replaced with a new program.

signal(), kill(), exit() and abort()

The,signal()kill(), exit() and abort() terminates the process and claim the resources of the terminated process.

Process Control Block (PCB)

The OS represents a process with a process control block, also known as the task control block. It contains the following information about the process.

Process Control Block
Figure 2 – Process Control Block

Process state – A process could be in any state after it is created such as new, ready,

Process ID – Every new process gets a unique number called process ID to uniquely identify the process.

Program Counter – It contains the address of the next instruction to be executed.

CPU Registers – When an interrupt occurs the current process state is saved, this allows the process to continue later.

CPU Scheduling information – The PCB contains process scheduling information in the form of process priority, a pointer to scheduling queue, and other process scheduling information.

Memory Management Information – Depending on the memory management technique, PCB contains information such as the address of base and limit registers, segments tables or page tables.

Accounting Information – This information includes CPU usage, account number, process number, and so on.

I/O Status – It includes a list of devices assigned to the process and list of open files, etc.


  • Abraham Silberschatz, Peter B. Galvin, Greg Gagne (July 29, 2008) Operating System Concepts, 8 edn., : Wiley.
  • Tanenbaum, Andrew S. (March 3, 2001) Modern Operating Systems, 2nd edn., : Prentice Hall.