Process
A process is basically a program in execution. The execution of a process
must progress in a sequential fashion.
A process is defined as an entity which represents the basic unit of work to
be implemented in the system.
To put it in simple terms, we write our computer programs in a text file and
when we execute this program, it becomes a process which performs all the
tasks mentioned in the program.
Process Life Cycle
When a process executes, it passes through different states. These stages
may differ in different operating systems, and the names of these states are
also not standardized.
In general, a process can have one of the following five states at a time.
S.N
State & Description
.
Start
1
This is the initial state when a process is first started/created.
Ready
The process is waiting to be assigned to a processor. Ready processes
2 are waiting to have the processor allocated to them by the operating
system so that they can run. Process may come into this state
after Start state or while running it by but interrupted by the scheduler
to assign CPU to some other process.
Running
3 Once the process has been assigned to a processor by the OS
scheduler, the process state is set to running and the processor
executes its instructions.
4 Waiting
Process moves into the waiting state if it needs to wait for a resource,
such as waiting for user input, or waiting for a file to become available.
Terminated or Exit
5 Once the process finishes its execution, or it is terminated by the
operating system, it is moved to the terminated state where it waits to
be removed from main memory.
Process Control Block (PCB)
A Process Control Block is a data structure maintained by the Operating
System for every process. The PCB is identified by an integer process ID
(PID). A PCB keeps all the information needed to keep track of a process as
listed below in the table −
S.N
Information & Description
.
Process State
1 The current state of the process i.e., whether it is ready, running,
waiting, or whatever.
Process privileges
2
This is required to allow/disallow access to system resources.
3 Process ID
Unique identification for each of the process in the operating system.
Pointer
4
A pointer to parent process.
Program Counter
5 Program Counter is a pointer to the address of the next instruction to be
executed for this process.
CPU registers
6 Various CPU registers where process need to be stored for execution for
running state.
CPU Scheduling Information
7 Process priority and other scheduling information which is required to
schedule the process.
Memory management information
8 This includes the information of page table, memory limits, Segment
table depending on memory used by the operating system.
Accounting information
9 This includes the amount of CPU used for process execution, time limits,
execution ID etc.
IO status information
10
This includes a list of I/O devices allocated to the process.
The architecture of a PCB is completely dependent on Operating System and
may contain different information in different operating systems. Here is a
simplified diagram of a PCB −
The PCB is maintained for a process throughout its lifetime, and is deleted
once the process terminates.
States of a Process
The five-state model describes the lifecycle of a process in 5 stages. Here the
not running state is further divided into three states - start, ready, and
waiting. This can be visualized as in the diagram below −
Start State − The start state is where a new process is created and
initialized. The process is not yet ready to run.
Ready State − In the ready state, the process is ready to run and is
waiting for CPU allocation. It has all the necessary resources except the
CPU.
Running State − The running state indicates that the process is
currently being executed by the CPU.
Waiting State − The waiting state happens when a process is waiting
for something like I/O operations or other resources. The process
cannot continue execution until the user inputs data or the required
resource becomes available.
End State/Terminated State − The end state indicates that the
process has completed its execution and is terminated from CPU.