Process Management

Program vs Process

A process is a program in execution. For example, when we write a program in C or C++ and compile it, the compiler creates a binary code. The original code and Binary code, both are programs. When we actually run the binary code, it becomes a process.

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, many instances begin (many processes are created).

What does a process look like in Memory?

 

 

Text Section:A Process is also sometimes known as the Text Section. It also includes the current activity represented by the value of Program Counter.
Stack: Stack contains the temporary data such as function parameters, returns address and local variables.

Data Section: Contains the global variable.

Heap Section: Dynamically allocated memory to process during its run time.
Attributes or Characteristics of a Process

A process has following Attributes.

 

 

States of Process:

A process is in one of the following states

 

Context Switching

The process of saving the context of one process and loading the context of other process is known as Context Switching. In simple term, it is like loading and unloading of the process from running state to ready state.

When does Context switching happen?

1. When a high priority process comes to ready state, compared to priority of running process
2. Interrupt Occur

3. User and Kernel mode switch: (It is not necessary though)
4. Preemptive CPU scheduling used.

 

Context Switch vs Mode Switch

A mode switch occurs when CPU privilege level is changed, for example when a system call is made or a fault occurs. The kernel works in more privileged mode than a standard user task. If a user process wants to access things which are only accessible to the kernel, a mode switch must occur. The currently executing process need not be changed during a mode switch.

A mode switch typically occurs for a process context switch to occur. Only the Kernel can cause a context switch.

CPU Bound vs I/O Bound Processes:

A CPU Bound Process requires more amount of CPU time or spends more time in the running state.
I/O Bound Process requires more amount of I/O time and less CPU time. I/O Bound process more time in the waiting state.