Skip to main content

A Very Basic yet important question in a life of a software developer

 Processes Vs Threads

Process: It is an execution unit where a program runs. The OS helps to create, schedule, and terminates the processes which is used by CPU. The other processes created by the main process are called child process. A process operations can be controlled with the help of PCB(Process Control Block). PCB contains all the crucial information related to processing like process id, priority, state, and contents CPU register, etc.

Important properties of the process:

- Creation of each process requires separate system calls for each process.
- It is an isolated execution entity and does not share data and information.
- Processes use the IPC(Inter-Process Communication) mechanism for communication that significantly increases the number of system calls.
- Process management takes more system calls.
- A process has its stack, heap memory, and data map.

Thread:  A process can have multiple threads, all executing at the same time. A thread is lightweight and can be managed independently by a scheduler. It helps to improve the application performance using parallelism. Threads share information like data, code, files, etc

Important properties of Thread:

- Single system call can create more than one thread
- Threads share data and information.
- Threads shares instruction, global, and heap regions. However, it has its register and stack.
- Thread management consumes very few, or no system calls because of communication between threads that can be achieved using shared memory.

ParameterProcessThread
DefinitionProcess means a program is in execution.Thread means a segment of a process.
LightweightThe process is not Lightweight.Threads are Lightweight.
Termination timeThe process takes more time to terminate.The thread takes less time to terminate.
Creation timeIt takes more time for creation.It takes less time for creation.
CommunicationCommunication between processes needs more time compared to thread.Communication between threads requires less time compared to processes.
Context switching timeIt takes more time for context switching.It takes less time for context switching.
ResourceProcess consume more resources.Thread consume fewer resources.
Treatment by OSDifferent process are tread separately by OS.All the level peer threads are treated as a single task by OS.
MemoryThe process is mostly isolated.Threads share memory.
SharingIt does not share dataThreads share data with each other.

Comments

Popular posts from this blog

Count the Reversals

Problem Statement: Given a string  S  consisting only of opening and closing curly brackets  '{'  and  '}'  find out the minimum number of reversals required to make a balanced expression. Input The first line of input contains an integer  T  denoting the number of test cases. Then  T  test cases follow.  The first line of each test case contains a string  S  consisting only of  {  and  } . Output Print out minimum reversals required to make  S  balanced.If it cannot be balanced, then print  -1 . Constraints 1 <=  T  <= 100 0 <    S   <= 50 Examples   Input 4 }{{}}{{{ {{}}}} {{}{{{}{{}}{{ {{{{}}}} Output 3 1 -1 0 Expected Complexity Time :   O(n) Space : O(n) Code: import java.util.*; import java.lang.*; import java.io.*; class GFG { public static void main (String[] args) { Scanner sc=new Scanner(S...

CheatSheet for Searching Algorithms

CheatSheet for Searching Algorithms 1. Linear Search int search(int arr[], int x) { int n = arr.length; for(int i = 0; i < n; i++) { if(arr[i] == x) return i; } return -1; } The time complexity of above algorithm is O(n). 2. Binary Search // Returns location of key, or -1 if not found // Returns location of key, or -1 if not found int BinarySearch(int A[], int l, int r, int key) { int m; while( l <= r ) { m = l + (r-l)/2; if( A[m] == key ) // first comparison return m; if( A[m] < key ) // second comparison l = m + 1; else r = m - 1; } return -1; } The time complexity of Binary Search Theta(log(n)) Auxiliary Space: O(1) in case of iterative implementation. In case of recursive implementation, O(Logn) recursion call stack space. 3. The Ubiquitous Binary Search // Invariant: A[l] <= key and A[r] > key // Boundar...