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

Relational declarative database language environment, Server Control It ...

Server Control It is usual to control access to the data via the front end application, for example by displaying data as ‘read only'. This part of the assignment illustrates ho

What are the advantages of having an index structure, What are the advantag...

What are the advantages of having an index structure?      Ans: The index structures commonly provide secondary access paths, which offer alternative ways of accessing the reco

What are the two aspect to the implementation of association, What are the ...

What are the two distinct aspects to the implementation of associations? i) It is required to define data declarations which will enable details of actual links to be stored. I

Explain cascade and restrict clauses of drop schema command, Explain severa...

Explain several types of constraints that can be specified using CREATE TABLE command. Explain CASCADE and RESTRICT clauses of DROP SCHEMA command? Constraint Description PRIM

Key constraint - relational constraints, This constraint shows that the key...

This constraint shows that the key attribute value in each tuple must be unique, i.e., no two tuples have the similar value for the key attribute. This is because the value of the

Describe the benefits of OOD techniques, Describe the benefits of OOD techn...

Describe the benefits of OOD techniques OOD techniques are very useful for development of large and complex systems. It has been noted that large projects that are developed u

What is bcnf boyce-codd normal form, BCNF Boyce-Codd Normal Form A rel...

BCNF Boyce-Codd Normal Form A relation schema R is in BCNF if it is in 3NF and accepts an additional constraint that for every FD X A, X has to be a candidate key. If a relati

What is called as recursive partitioning, What is called as recursive parti...

What is called as recursive partitioning? The system repeats the splitting of the input unless each partition of the build input fits in the memory. Such partitioning is known

Give short note on the following terms- dirty pages and etl, Give short not...

Give short note on the following terms:Dirty pages and ETL a.) Dirty pages. These are buffer pages which comprise modifications which haven't been written to disk. b.

Oracle, List and explain the memory constructs of the Oracle 12c databases?...

List and explain the memory constructs of the Oracle 12c databases?

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