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

Er-diagram, courier company er-diagram

courier company er-diagram

How does the two phase protocol ensure serializability, How does the two ph...

How does the two phase protocol ensure serializability in database schedules?   Ans:  A transaction is termed to follow the two-phase locking protocol if all locking operations

advantages of database over file system, Q.   Why would you choose a datab...

Q.   Why would you choose a database system instead of simply storing data in operating system file? Define  at a base concept in details. Sol. Advantages of Database over Fil

Database for Managers, I have to create a database about anything of my cho...

I have to create a database about anything of my choice. It has to contain 4 queries, and 4 forms. It can be anything as simple as a shoe inventory with numbers - is this a service

Functional dependency, Functional Dependency Consider a relation R that...

Functional Dependency Consider a relation R that has 2 attributes A and B. The attribute B of the relation is functionally dependent on the attribute A if and only if for every

Division operation, To do the division operation R1 ÷ R2, R2 should be a co...

To do the division operation R1 ÷ R2, R2 should be a correct subset of R1. In the following example R1 have attributes A and B and R2 have only attribute B so R2 is a correct subse

Assignments, i have assignments I don''t have time to finish because of wo...

i have assignments I don''t have time to finish because of work and other assignments, can you help with this? All are from the book Darabase design, application development and a

What is a heterogeneous distributed database, What is a heterogeneous distr...

What is a heterogeneous distributed database? In a heterogeneous distributed database, dissimilar sites may use different schemas, and dissimilar dbms s/w. The sites may not be

Many-to-many relationship, Many-to-many : Entities in A and B are related w...

Many-to-many : Entities in A and B are related with any number of entities from each other. Example: Taught_by Relationship among course and faculty. One faculty member ca

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