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

What is an operating system and its type, What is an operating system and w...

What is an operating system and what are the different types of operating systems? Operating System An Operating System or OS is a software program that allows the compute

Rf, whta is an operating system ? what sorts services are provided by an op...

whta is an operating system ? what sorts services are provided by an operating system ?

Determine a parser which is a variant of top-down parsing, Determine a pars...

Determine a parser which is a variant of top-down parsing without backtracking Recursive Descend parser is a variant of top-down parsing without backtracking.

Clocks in distributed systems, Clocks in distributed systems : a. Why ar...

Clocks in distributed systems : a. Why are clocks difficult to synchronize in distributed systems? b. What features in a system assume that the clocks are (reasonably) synchr

Define middleware to ease the low-level protocol burden, Define Middleware ...

Define Middleware to Ease the Low-Level Protocol Burden Fortunately, many products are available today to ease the low-level protocol burden on the application programmer. Midd

Binary and data representation, Computing uses three number bases:- Binary ...

Computing uses three number bases:- Binary (base 2), Octal (base 8) and Hexadecimal (base 16). Binary has been described before, although various catchphrases are used to describe

List five services provided by an operating system, List five services prov...

List five services provided by an operating system. Explain how each provides convenience to the users. Explain also in which cases it would be impossible for user-level programs t

Mention the various features that characteristics deadlock, Mention the var...

Mention the various features that characteristics the deadlock condition .  The four circumstances that give rise to deadlock condition are: 1) Mutual exclusion : As a minim

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