Difference between threads and processes
1. Thread is flow of implementation. Process is group of instruction which is alike to that of a program except which may be stopped and started by the OS itself.
2. A Thread is a single sequence stream in a process but process is an execution of program and program contain set of instructions.
3. Process is able to contain multiple threads.
4. Threads aren't independent like process.
5. All threads are able to access every address in the task unlike process.
6. Threads are designed to support one another and process might or not might be assisting on one another.
7. Different process cannot work under same memory location and they have their own individual working memory segment. Threads are able to work under same memory area even they can access any memory location.
8. Processes have the transparency of making all the work within it orderly and as well sum up them. However threads are done for a single unit of task only and at completion their work is all over.
9. One process is able to run on more than one thread.
10. Process is a term used to explain the execution of a sequential program .A thread is a point of implementation within the process.
Regard as a system of process of 3 processes p0 through p2 and 4 resource types A,B,C,D. Resource kind A has 4 instances, B has 2 instances, resource C has 3 instances and D has 1 instances. Assume that, at time T0, we have the subsequent resource-allocation state. Notice whether there is any deadlock.
Current Allocation Matrix Request Matrix Available Vector Existing Vector
(C) (R) (A) (E)
A B C D A B C D A B C D A B C D
P0 0 0 1 0 2 0 0 1 2 1 0 0 4 2 3 1
P1 2 0 0 1 1 0 1 0
P2 0 1 2 0 2 1 0 0
p2 requests 2 1 0 0
After p2 finishes execution A = 2 1 0 0 +
0 1 2 0 gives 2 2 2 0
p1 requests 1 0 1 0
After p1 finishes execution A = 2 2 2 0 +
2 0 0 1 gives 4 2 2 1
p0 requests 2 0 0 1
After p0 finishes execution A = 4 2 2 1 +
0 0 1 0 gives 4 2 3 1
Thus there is no dead lock during the allocation of resources.