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

Explain in detail about collaboration diagrams, Explain in detail about Col...

Explain in detail about Collaboration Diagrams Collaboration diagrams are interaction diagrams which emphasize structural organisation of an object that transmit and receive m

Give concurrent sub states diagram for the classroom, Give Concurrent sub s...

Give Concurrent sub states diagram for the classroom and exam held. In Figure, simultaneous substrates have been taken. After passing Minor 1 test you could give Minor 2 test. T

Heuristics, Benefits of using heuristics

Benefits of using heuristics

What are the three types of data sources, What are the three types of data ...

What are the three types of data sources used with ODBC? An ODBC file data source is a file that can be shared between database users. An ODBC system data source is one that is

Approach to implement traffic data management, There are many simple and co...

There are many simple and complex approaches to implement. These reports are based on some views or certain query. The following number of reports can be built. 1. The averag

Databases and data warehouses , Databases and data warehouses both are data...

Databases and data warehouses both are databases and both contains number of rows and columns of tables containing data. Data warehouse is really different from databases because d

Explain what is to be done during defining problem statement, Briefly expla...

Briefly explain what is to be done during defining problem statement. To define Problem Statement of a system, define what is to be done and how you can go to implement that. Y

Graphical user interface tools, These are interactive interfaces, graphical...

These are interactive interfaces, graphical that hide the difficulty of the DBMS and query language behind an intuitive, simple to understand, and convenient interface. This permit

Define the term database, QUESTION (a)(i) Define the term database. ...

QUESTION (a)(i) Define the term database. (ii) How is it different from a database management system? (b) What is the difference between an entity and an attribute? (c

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