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

Mapping, How external/conceptual mapping and conceptual /internal mapping i...

How external/conceptual mapping and conceptual /internal mapping is performed

Which sorting technique is used to sort databases, Which sorting technique ...

Which sorting technique is used to sort databases, whose sizes are very big?  Give one such algorithm.  Why do sorting techniques like quicksort, insertion sort, etc.  not applied

Case tools, explain at least five widly used case tools

explain at least five widly used case tools

Query by example, Illustrate how you can use QBE to perform logical AND and...

Illustrate how you can use QBE to perform logical AND and OR operation

Database, Three way to handle missing field val

Three way to handle missing field val

Stock market, need requirement analysis for database management of stock ma...

need requirement analysis for database management of stock market

Recovery techniques, Recovery Techniques: After Reading the types of failur...

Recovery Techniques: After Reading the types of failures and database errors, let us talk about how to recover from the failures. Recovery can be complete using/restoring the previ

Homework help, Draw an entity relationship diagram (ERD) for the following ...

Draw an entity relationship diagram (ERD) for the following situation: A company has a number of employees. Each employee is identified by an Employee_Id. The company wants to st

Problems of concurrent transactions-lost updates, Lost Updates : Suppose th...

Lost Updates : Suppose the two transactions T3 and T4 run simultaneously and they happen to be interleaved in the following way (suppose the initial value of X as 10000):

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