Deadlock detection, Operating System

Assignment Help:

Deadlocks can be detected while the program is running, by running cycle detection algorithms on the graph that de?nes the current use of resources.

De?ne this graph as follows: it has one vertex for each resource (r1; : : : ; rm) and one vertex for each thread (t1; : : : ; tn). If a resource ri is held by thread tj , then we add an edge from vertex ri to vertex tj . If a thread tk is trying to acquire resource r', then we add an edge from vertex tk to vertex r'.

Given this graph, we can run a cycle detection algorithm. If a cycle is found, there is a deadlock. Detecting a deadlock ismuch easier than recovering froma deadlock. Several possible approaches might be to kill all of the threads in the cycle, or kill the threads one at a time, forcing them to release resources, and hope that this will break the deadlock.

While this may sound easy, it is not. Killing threads generally doesn't release their resources cleanly (locks,memory, ?les, etc). This is essentially the rollback problem, to back out all the actions of a thread. Databases usually include rollback mechanisms, which can be quite complicated, and it is not always possible to roll back all the actions of a thread (consider a thread which outputs hard-copy printed pages).

As a general guideline, do not use functions like pthread cancel(), which kills a thread, unless you really know what you are doing.


Related Discussions:- Deadlock detection

Explain a working of file control block, Explain a working of file control ...

Explain a working of file control block A file control block (FCB) has information about the file, containing ownership, permission, and location of the file contents. The log

What are two probable uses of these multiple modes, Q. Several CPUs provide...

Q. Several CPUs provide for more than two modes of operation. What are two probable uses of these multiple modes? Answer: Although most systems merely distinguish between use

Major differences between capability lists and access lists, Q. What are th...

Q. What are the major differences between capability lists and access lists? Answer: An access list is a list for each object consisting of the domains with a nonempty set of

Inventory differences, What makes a Just-in-Time inventory system differ fr...

What makes a Just-in-Time inventory system differ from a traditional inventory system?

What are the necessary conditions for deadlocks?, What are the necessary co...

What are the necessary conditions for deadlocks? 1. Mutual exclusion :  Only one process at a time is able to use the resource. 2. Hold and wait :  A process should be holdi

Binary arithmetic, The principle is that of ordinary addition; however reme...

The principle is that of ordinary addition; however remember the highest number is 1.   Calculate the following:                             11001 +                           11

Dynamically linked segmentation system, Sharing segments between processes ...

Sharing segments between processes without requiring the same segment number is possible in a dynamically linked segmentation system. a. Define a system that permits sta

Define busy waiting and spinlock, Define busy waiting and spinlock. Whe...

Define busy waiting and spinlock. When a process is in its significant section, any other process that tries to enter its critical section must loop continuously in the entry c

Explain disk scheduling algorithms-shortest seek time first, SSTF (Shortest...

SSTF (Shortest Seek Time First) After a demand go to the closest request in the work queue regardless of direction Decrease total seek time compared to FCFS Disadv

CPU, TURNAROUND TIME

TURNAROUND TIME

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd