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

Increased overheads on update-data replication, Increased overheads on upda...

Increased overheads on update : On the drawbacks side, it will need the system to ensure that all replicas of a relation are consistent. This shows that all the replicas of the rel

Determine the derived attribute to avoid re-computation, Determine the Deri...

Determine the Derived attribute to avoid re-computation Each class box consists of an ordered list of attributes and operations, each represented as a next string. We can find

What is a hash index, What is a hash index? A hash index organizes the ...

What is a hash index? A hash index organizes the search keys, with their associated pointers, into a hash file structure.

Define aggregate functions, Define Aggregate functions and what aggregate f...

Define Aggregate functions and what aggregate functions supported by the MySQL To calculate a summary value from a set of individual values and uses one of the functions known

Why we use delegation to share implementation, Use Delegation to Share Impl...

Use Delegation to Share Implementation The delegation " Delegation comprises of catching an operation on one object and sending it to other object which is part, or related to

Create role named roletable to allows a user to create table, Create role n...

Create role named role_table that allows a user to create tables. Using role_table allow users kripa and reena to create tables. CREATE ROLE role_table; GRANT CREATE ANY TABLE

Organic compounds, #question.explain diversity and magnitude of organic com...

#question.explain diversity and magnitude of organic compounds and general properties?

Insertion anomaly-data redundancy, Insertion Anomaly: Inability to show ce...

Insertion Anomaly: Inability to show certain information-The primary key of the over relation be (enrolment number, Cno). Any new tuple to be inserted in the relation should have

Development of an ER diagram and database implementation, i want answers th...

i want answers this assignment now if yiu can maket for me now ?

What is a state chart diagram, What is a state chart diagram? State dia...

What is a state chart diagram? State diagrams (State Chart Diagram) explain all possible states that a particular object can get into, and how object's state changes as result

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