Write modified version of transfer that avoids deadlock, Database Management System

Assignment Help:

Your OS has a set of queues, each of which is protected by a lock. To enqueue or dequeue an item, a thread must hold the lock associated to the queue.

You need to implement an atomic transfer routine that dequeues an item from one queue and enqueues it on another. The transfer must appear to occur atomically.

This is your first attempt:

void transfer(Queue *q1, Queue *q2) {

Item thing; /* the thing being transferred */

q1->lock.Acquire(); thing = q1->Dequeue(); if (thing != NULL){

q2->lock.Acquire(); q2->Enqueue(thing); q2->lock.Release();

} q1->lock.Release()

You may assume that q1 and q2 never refer to the same queue. Also, assume that you have a function Queue::Address that takes a queue and returns, as an unsigned integer, its address in memory.

a. Explain how using this implementation of transfer leads to deadlock; b. Write a modified version of transfer that avoids deadlock and does the transfer atomically; c. If the transfer does not need to be atomic, how might you change your solution to achieve a higher degree of concurrency? Justify how your modification increases concurrency.


Related Discussions:- Write modified version of transfer that avoids deadlock

Higher software development cost, Drawbacks of Data Distribution: The prim...

Drawbacks of Data Distribution: The primary drawbacks of distributed database systems are the added complexity needed to ensure proper coordination between the sites. This increas

What is the use of sub queries, What is the use of sub queries? A sub q...

What is the use of sub queries? A sub query is a select-from-where expression that is nested with in another query. A common use of sub queries is to do tests for set membershi

Decompose the table - 3nf or bcnf, Decompose the table with the following ...

Decompose the table with the following description and functional dependencies into a set of equivalent tables normalized to 3NF or BCNF. A long-standing international treaty am

Optimistic concurrency control, Optimistic Concurrency Control Is locki...

Optimistic Concurrency Control Is locking the only way to stop concurrency related problems? There exist some other ways too. One such way is known as an Optimistic Concurrency

How many types of views are there, How many types of Views are there? ...

How many types of Views are there? There are Four types of views:- Database View Help View Projection View Maintenance View

Mobile database, write short note on mobile database

write short note on mobile database

Discuss the types of integrity constraints with example, Discuss the types ...

Discuss the types of integrity constraints in which must be checked for the update operations - Insert and Delete. Give examples. Insert operation can violet any of the subse

What is a primary key, What is a primary key? Primary key is chosen by ...

What is a primary key? Primary key is chosen by the database designer as the principal means of identifying an entity in the entity set.

State the functional approach of object oriented methods, State the functio...

State the functional approach of object oriented methods Moving from a functional approach to an object oriented one needs a translation of functional model elements into objec

Durability-transaction , Durability : This property necessitates that once ...

Durability : This property necessitates that once a transaction has committed, the changes made by it be never lost because of subsequent failure. Thus, a transaction is also a bas

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