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

What are the desirable properties of a decomposition, Define What are the d...

Define What are the desirable properties of a decomposition Ans: What are the desirable properties of decomposition - dependency preserving.  Because Lossless join and dependen

Equi join-table handling, Equi Join: A join in which the joining condition...

Equi Join: A join in which the joining condition is based on equality among values in the common columns. Common columns show (redundantly) in the result table. Let us Consider th

State the component diagram, State the Component Diagram A component d...

State the Component Diagram A component diagram represents a set of component and relationships among them. In a dynamic model, component diagram is used to model physical com

Post vbulletin hack and new server problem, Project Description: My VBul...

Project Description: My VBulletin forum was hacked, and soon after my server machine died. So, I'm now on a new machine, and I think that I've taken care of 99% of the hacking..

What are the types of reference, What are the types of reference?explain it...

What are the types of reference?explain it with suitable examples? Object oriented language given the ability to refer the object attribute of the type can be referred to the s

Natural join-table handling, Natural Join : It is the similar like Equi joi...

Natural Join : It is the similar like Equi join except one of the duplicate columns is removed in the result table. The natural join is the most usually used form of join operation

Implementation of database, The ER diagram clearly showing the additional t...

The ER diagram clearly showing the additional tables you have implemented. SQL table creation scripts for the tables you have set up. SQL scripts showing the sample data you

DBMS , need a DBMS system on any data for assignment.

need a DBMS system on any data for assignment.

Which are two ways that entities participate relationship, Which are the tw...

Which are the two ways in which entities can participate in a relationship? Total and partial are the two ways in which entities can participate in a relationship

What are the problems in database normalization, What are the problems if o...

What are the problems if one were not to normalize?  When do these problems surface?           Ans:  Database normalization, sometimes considered to as  canonical synthesis, is

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