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

Determine the programming language structures, What is the most significant...

What is the most significant feature that does not directly map into programming language structures? Why? Association, since there are complex types of association, like as qu

In case of entity integrity the primary key may be declared, In case of ent...

In case of entity integrity, the primary key may be declared? In a case of entity integrity primary key may be not Null.

What are stored and derived attributes, What are stored and derived attribu...

What are stored and derived attributes? Stored attributes: The attributes keeps in a data base are known as stored attributes. Derived attributes: The attributes that are de

Update anomaly-data redundancy, Update Anomaly : This anomaly is occurred d...

Update Anomaly : This anomaly is occurred due to data redundancy. Redundant information makes updates more complex since, for example, varying the name of the instructor of MCS-014

A Biological Database on Viruses, How to create a biological database based...

How to create a biological database based on viruses. How to decide which attribute should be there in the table and schema? How to identify the primary keys, foreign keys, domain,

Differences among the candidate keys and the primary key, Discuss the diffe...

Discuss the differences among the candidate keys and the primary key of a relation. Give instance to describe your answer? A candidate key is one that can be used as primary ke

Define decision tree classifiers, Define decision tree classifiers? As ...

Define decision tree classifiers? As the name suggests decision tree classifiers use a tree: Every leaf node has an associated class, and every internal node has a predicate as

What are the requirements of algorithm designer, What are the Requirements ...

What are the Requirements of algorithm designer Algorithm designer should: i) Select proper algorithm so as to minimize implementation cost ii) Find most appropriate d

Explain the data access protocol, (a) Explain the three types of potentia...

(a) Explain the three types of potential mistake which could occur if concurrency control is not properly enforced in the database system. Support your answer with appropriate ex

Set difference, Set Difference If R1 and R2 are two union compatible re...

Set Difference If R1 and R2 are two union compatible relations or relations then result of R3 =R1- R2 is the relation that have only those tuples that are in R1 but not in R2.

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