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 is relational model feature, What is relational model feature? A r...

What is relational model feature? A relational model feature is much more data independence than some other database models.

Conflicting operations in schedule, Conflicting Operations in Schedule: ...

Conflicting Operations in Schedule: The three simple ways of interleaved instruction implement of transactions T1 and T2. Please note that in the following tables the first col

Determine the subsystem design issue, Determine the Other System Design Iss...

Determine the Other System Design Issue How to realise subsystems; through hardware or software? How is object model mapped on chosen hardware software? Mapping

Differentiate between pl/sql functions and procedures, Oracle & Distributed...

Oracle & Distributed Databases 1. Differentiate between PL/SQL functions and procedures. 2. Draw the diagram of logical structure of oracle database and explain it in brief.

Describe the definition of a transaction in sql, Describe the definition of...

Describe the definition of a transaction in SQL  Ans: The SQL transaction starts implicitly. Transactions are finished by either Commit work that commits the transaction and st

B2b business uk database, We have a new website where I need someone to 1: ...

We have a new website where I need someone to 1: Inhabit the back end with all the recruitment agencies in the UK. I require someone who is not manually going to do this, but who w

What is data definition language, What is data definition language? Explain...

What is data definition language? Explain it in detail? The SQL DDL allows specification of not only a set of relations, but also information after each relation, containing

What is the full form of ddl, What is the full form of DDL? DDL is stan...

What is the full form of DDL? DDL is stand for Data Definition Language.

What is meant by the degree of relationship set, What is meant by the degre...

What is meant by the degree of relationship set? The degree of relationship type is the number of participating entity types.

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