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

RDBMS, Benefits and limitations

Benefits and limitations

Why do so various organizations use mysql, Why do so various organizations ...

Why do so various organizations use MySQL? Advantages: Open source Highly efficient Offers a high scalability in terms of size and connectivity. Highly prote

The conceptual level or global level in dbms, The Conceptual Level or Globa...

The Conceptual Level or Global level The conceptual level presents a logical view of the complete database as a unified whole. It permits the user to bring all the data in th

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

Define control files, Control Files : The redo and control files logs supp...

Control Files : The redo and control files logs support the rest of the architecture. Every database must have at least one control file, although you have more than one to guard

Define database layer, Define Database layer? The database layer define...

Define Database layer? The database layer defines the data formats used in the database.

Functional dependencies, CAR SALE (Car_id, Option_type, Option_listprice, S...

CAR SALE (Car_id, Option_type, Option_listprice, Sale_date, Option_discountedprice) This relation refers to options installed in cars (e.g., cruise control) that were sold at a de

MANAGEMWNT OF PRINCILES AND TECHNIQUES., HOW TO SOLVE THE LP Problems by si...

HOW TO SOLVE THE LP Problems by simplex method?z=x1+-3x2+2x3

Define the schema at the intermediate level of abstraction, Define Accordin...

Define According to the levels of abstraction, the schema at the intermediate level is called  Ans: As per to the levels of abstraction, the schema at the intermediate level 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