OPERATING SYSTEM
TOPIC :- Concurrency Deadlock and Starvation
1) Concurrency :-
concurrency is the property of a system where multiple tasks or processes are in progress at the same time and this does not necessary mean that the tasks are being executed simultaneously in parallel but rather that they are being managed in such a way that they overlap in execution
---Deadlock :-
*Deadlock can be defined as the permanent blocking of a set of processes that either compete for system resources or communicate with each other
* A set of processes is deadlocked when each process in the set is blocked awaiting an event that can only be triggered by another blocked process in the set
* Deadlock is permanent because none of the event is ever triggered . At list one resource must held in a non - shareable mode only one processes or thread can hold it a time process of threads holding resources can request additional resources without releasing their current ones
Example :- Let take Two processes P1 and P2 and two resources R1 and R2
- P1 holds R1 and request R2
- P2 holds R2 and request R1
Process can proceed because each is waiting for a resource held by the other leading to a deadlock
---Starvation :-
* Starvation in an operating system occurs when a processes is indefinitely delayed from accessing resources or CPU time . It often results from scheduling policies that consistently favor certain processes over others
* processes with lower priority may starve if higher - priority processes keep arriving and are always given first preference
Example :- let take a simple example a scheduling system that uses a priority based algorithm processes with higher priority are served before those with lower priority
processes A : High priority
Processes B : Medium priority
processes C : Low priority
if new high priority processes keep arriving they will always be scheduled before low priority processes . Processes C may never get CPU time leading to starvation even if the processes C is ready to execute it is constantly by passed by priority processes causing it to wait indefinitely