written 6.7 years ago by | modified 6.6 years ago by |
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.
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 −
Sr.No. | Components | Description |
---|---|---|
1 | Stack | Stacks in computing architectures are regions of memory where data is added or removed.The stack is always reserved in a LIFO (last in first out) order;this makes it really simple to keep track of the stack. The process Stack contains the temporary data such as method/function parameters, return address, and local variables. |
2 | Heap | The heap is memory set aside for dynamic allocation.Unlike the stack, there's no enforced pattern to the allocation and deallocation of blocks from the heap.It is a dynamically allocated memory to a process during its runtime. |
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 staticvariables. |
Program
A program is a piece of code which may be a single line or millions of lines. A computer program is usually written by a computer programmer in a programming language. For example, here is a simple program written in C programming language –
#include<stdio.h>
int main()
{
printf("Hello, World! \n");
return0;
}
A computer program is a collection of instructions that performs a specific task when executed by a computer. When we compare a program with a process, we can conclude that a process is a dynamic instance of a computer program.
A part of a computer program that performs a well-defined task is known as an algorithm. A collection of computer programs, libraries and related data are referred to as a software.
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.
Start: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 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
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.
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
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 The architecture of a PCB is completely dependent on Operating System and may contain different information in different operating systems.The PCB is maintained for a process throughout its lifetime, and is deleted once the process terminates.