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

The result of the union operation between r1 and r2, The result of the UNIO...

The result of the UNION operation between R1 and R2 is a relation that includes? The result of the operation between R1 and R2 includes all the tuples of R1 and R2 which have c

Write expressions in relational algebra, Given the subsequent relations: ...

Given the subsequent relations:    vehicle (reg_no, make, colour)    Person (eno, name, address)    Owner (eno, reg_no)   Write expressions

What is substitutability, What is substitutability? Any method of a cla...

What is substitutability? Any method of a class-say A can equally well be adjured with any object belonging to any subclasses B of A. This characteristic leads to code reuse, a

What is de-normalization, What is De-normalization? De-normalization is...

What is De-normalization? De-normalization is the method of attempting to optimize the performance of a database by adding redundant data. It is sometimes essential because cur

Improved availability, Improved availability: The data in a distributed sys...

Improved availability: The data in a distributed system may be replicated so that it is at more than one site. Thus, the failure of a node or a communication link does not necessar

Explain the need for the bcnf normal form, Surgeons identified by doctor ID...

Surgeons identified by doctor ID (DOCID) operate on patients identified by patient ID (PATID) in operating theaters identified by room numbers (ROOMNO). Each surgeon can operate on

What is theta join explain, What is theta join explain? Theta  Join  -...

What is theta join explain? Theta  Join  - The  theta  join  operation  is  an  extension  to  the  natural-join operation which permits us to merge selection and a Cartesian

Describe the term- state diagram, Describe the term- State Diagram Sta...

Describe the term- State Diagram State Diagram: An object could receive a sequence of the input instructions. The state of the object can differ depending upon sequence of in

Write a short note on temporary tables, Write A short note on temporary tab...

Write A short note on temporary tables? Temporary Tables - Temporary tables exists solely for a particular session, or whose data persists for the duration of the transaction

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