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

MIS, We face problem of stock Opening balance and closing balance in Minus...

We face problem of stock Opening balance and closing balance in Minus

What is candidate key, What is candidate key? Candidate Key - A candi...

What is candidate key? Candidate Key - A candidate key of an entity set is a minimal superkey, which uniquely identifies each row in the relation.

Rules of data normalisation, Rules Of Data Normalisation  Let us now su...

Rules Of Data Normalisation  Let us now summarise Normalisation with the help of various clean rules. The following are the necessary rules for the Normalisation process: 1.

Greater potential for bugs and increased processing overhead, Greater poten...

Greater potential for bugs: Since the sites of a distributed system operate simultaneously, it is more complex to ensure the correctness of algorithms. The art of constructing dis

Explain tuple variable, Define tuple variable? Tuple variables are used...

Define tuple variable? Tuple variables are used for comparing two tuples in the same relation. The tuple variables are explained in the from clause by way of the as clause.

Critically evaluate the bulleted list of information, Critically evaluate t...

Critically evaluate the bulleted list of information-related items in this case study. How are each contradictory to the notion of being an information-literate knowledge worker?

Describe the statement in sql which allows to change, Describe the statemen...

Describe the statement in SQL which allows to change the definition of a table? In SQL Alter statement is used to allow the changes the definition of a table.

What is view in sql, What is view in SQL? How is it defined? Any relati...

What is view in SQL? How is it defined? Any relation that is not part of the logical model, but is made visible to a user as a virtual relation is known as a view. We descri

Boyce-codd normal form (bcnf), Boyce-Codd Normal Form (BCNF) The relati...

Boyce-Codd Normal Form (BCNF) The relation NEWSTUDENT (Enrolmentno, Sno, Sname, Cname, Cno,) has every attributes participating in candidate keys as all the attributes are assu

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