Major locking errors, Operating System

Assignment Help:

When programming with threads, there are three very common mistakes that programmers often
make:

1. locking twice (depending on the system and type of lock, can cause crashes, hangs, or do bizarre things);

2. locking and not unlocking (i.e. failure to unlock);

3. deadlock (see next lecture).

4. Priority inversion - This is not an error per se, but an important issue that occurs Of these problems, locking twice is probably the easiest type of error to detect. Here's one example:

function f() { function g() {
lock(L); lock(L);
g(); // access shared data
unlock(L); unlock(L);
} }

So-called "recursive" locks can deal with this situation correctly, though normal locks will cause this thread to wait forever when the function g(), when called fromf(), then calls lock(L) on a previously-held lock. Dealing with this can lead to a common code pattern with certain functions designed only to be called with locks held:

function f(){

function g() {

function g_internal() {
lock(L); lock(L); // locks must be held here!
g_internal(); g_internal(); // access shared data
unlock(L); unlock(L); }
} }

Failure to unlock is slightly more dif?cult to detect. It can occur, for example, if the programmer forgets to release the lock in one of the possible execution branches of the function:

function f() {
lock();
if (x==0) {
// should also unlock here before returning!
return;
}
// do something
unlock();
return;
}

One way to deal with this is just to remember to unlock() at each possible return. Another is to have every return path go through the same section of code (and in C, goto is sometimes useful for this, despite its bad reputation).


Related Discussions:- Major locking errors

Define a policy for data storage, Produce a referenced four page report whi...

Produce a referenced four page report which describes the possible functionality of the system; similar systems that are out there and different possible approaches to delivering t

Describes attributes, What are attributes? Attributes are the one, whic...

What are attributes? Attributes are the one, which explains the properties of data object.

Comparing gc to malloc, Garbage collectors trade space for time. If we coll...

Garbage collectors trade space for time. If we collect all the time (which requires a lot of processing time), the GC allocator will use the least memory possible. On the other han

Explain lru approximation page replacement, LRU approximation page replacem...

LRU approximation page replacement In this we are able to use the reference bit associated with the page entry to choose a page to be removed. The various algorithms used for

Define a election algorithm, Consider a setting where processors are not as...

Consider a setting where processors are not associated with unique identifiers but the total number of processors is known and the processors are organized along a bidirectional ri

Benefits and drawbacks of batch system, Q. Benefits and Drawbacks of Batch ...

Q. Benefits and Drawbacks of Batch System? Benefits of Batch System: Move much of the work of operator to computer. Increased performance as it was possible for j

Kernel to context switch between kernel level threads, Q. Explain the actio...

Q. Explain the actions taken by a kernel to context switch between kernel level threads. Answer: Context switching among kernel threads classically requires saving the value

How can the deadlock be prevented?, How can the deadlock be prevented? ...

How can the deadlock be prevented? To evade deadlocks first we will have to obtain the information about how resources are to be requested. And as well we should make sure that

Roles of operating systems, Describe Three major roles of operating systems...

Describe Three major roles of operating systems in business computer systems

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