Deadlocks


Deadlocks are a set of blocked processes each holding a resource and waiting to acquire a resource held by another process.

Deadlock is a common problem in multiprocessing systems, parallel computing and distributed systems, where software and hardware locks are used to handle shared resources and implement process synchronization.

How to avoid Deadlocks

Deadlocks can be avoided by avoiding at least one of the four conditions, because all this four conditions are required simultaneously to cause deadlock.

Mutual Exclusion

·         Resources shared such as read-only files do not lead to deadlocks but resources, such as printers and tape drives, requires exclusive access by a single process.

Hold and Wait

·         In this condition processes must be prevented from holding one or more resources while simultaneously waiting for one or more others.

No Preemption

·         Pre-emption of process resource allocations can avoid the condition of deadlocks, where ever possible.

Circular Wait

·         Circular wait can be avoided if we number all resources, and require that processes request resources only in strictly increasing(or decreasing) order.

Handling Deadlock

·         The above points focus on preventing deadlocks. But what to do once a deadlock has occurred. Following three strategies can be used to remove deadlock after its occurrence.

Preemption

·         We can take a resource from one process and give it to other. This will resolve the deadlock situation, but sometimes it does causes problems.

Rollback

·         In situations where deadlock is a real possibility, the system can periodically make a record of the state of each process

·         When deadlock occurs, roll everything back to the last checkpoint, and restart, but allocating resources differently so that deadlock does not occur.

Kill one or more processes

·         This is the simplest way, but it works.

Advertisements

Give A message for us

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s