Introduction to Processes :
A process is basically a program
in execution. The execution of a process must progress in a sequential fashion.
A process is an ‘active’ entity,
as opposed to a program, which is considered to be a ‘passive’ entity. A single
program can create many processes when run multiple times; for example, when we
open a .exe or binary file multiple times, multiple instances begin (multiple
processes are created)
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.
When a program is loaded into
the memory and it becomes a process, it can be divided into four sections ─
stack, heap, text and data. The following image shows a simplified layout of a
process inside main memory.
|
S.N. |
Component & Description |
|
1 |
Stack The
process Stack contains the temporary data such as method/function parameters,
return address and local variables. |
|
2 |
Heap This is
dynamically allocated memory to a process during its run time. |
|
3 |
Text This
includes the current activity represented by the value of Program Counter and
the contents of the processor's registers. |
|
4 |
Data This
section contains the global and static variables. |
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 |
|
1 |
Process
State The
current state of the process i.e., whether it is ready, running, waiting, or
whatever. |
|
2 |
Process
privileges This is
required to allow/disallow access to system resources. |
|
3 |
Process
ID Unique
identification for each of the process in the operating system. |
|
4 |
Pointer A pointer
to parent process. |
|
5 |
Program
Counter Program
Counter is a pointer to the address of the next instruction to be executed
for this process. |
|
6 |
CPU
registers Various
CPU registers where process need to be stored for execution for running
state. |
|
7 |
CPU
Scheduling Information Process
priority and other scheduling information which is required to schedule the
process. |
|
8 |
Memory
management information This
includes the information of page table, memory limits, Segment table
depending on memory used by the operating system. |
|
9 |
Accounting
information This
includes the amount of CPU used for process execution, time limits, execution
ID etc. |
|
10 |
IO status
information This
includes a list of I/O devices allocated to the process. |

