


-Deadlock
Deadlock is a situation in computing where two or more processes are unable to proceed because each one is waiting for a resource that the other has locked.
In technical terms, deadlock occurs when the following four conditions are met simultaneously:
1. Mutual Exclusion: At least one resource must be held in a non-shareable mode. Only one process can use the resource at a time.
2. Hold and Wait : A process is holding at least one resource and is waiting to acquire additional resources that are currently being held by other processes.
3. No Preemption : A resource cannot be forcibly taken away from a process. The process must release the resource voluntarily.
4. Circular Wait: There exists a set of processes where each process is waiting for a resource that is held by the next process in the chain, forming a circular chain of dependencies.
In a deadlock, none of the processes can proceed, and they remain stuck indefinitely unless an external action is taken to break the deadlock, such as terminating a process or forcibly taking resources.
-Starvation
Starvation is a condition where a process is perpetually denied the resources it needs to proceed because other processes are continuously being prioritized over it.
Starvation can occur in situations where:
2. Priority Scheduling: In systems that use priority scheduling, a high-priority process may keep interrupting a lower-priority one, causing the latter to wait indefinitely.
3. Resource Contention: If a resource is constantly being used by other processes, the starved process might never get access to it.
Starvation is different from deadlock because, in a deadlock, the processes involved are permanently stuck, whereas in starvation, a process may eventually get the resources it needs if the circumstances change. However, in extreme cases, starvation can lead to a situation where a process never gets the resources it needs, effectively being "starved" indefinitely.