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

What is the role of order by clause, What is the role of ORDER By Clause? ...

What is the role of ORDER By Clause? ORDER BY clause: The ORDER BY clause permits you to sort the records in your result set. The ORDER BY clause can just be used in select s

Which is the properties of entities, Which is the properties of entities? ...

Which is the properties of entities? Attributes is the properties of entities.

State the design of associations, State the Design of Associations Bef...

State the Design of Associations Before designing associations, it is essential to know the way they are used. For this, analysis of association traversals is required. It is

Multivalued attributes, For every multivalued attribute 'A', we make a new ...

For every multivalued attribute 'A', we make a new relation R that contains an attribute corresponding to plus the primary key attribute k of the relation that shows the entity typ

Explain the reason for keeping legacy system, In order to keep pace with co...

In order to keep pace with competitors, Space Ltd has decided to implement an ERP system in order to replace its old legacy and manual systems. Management does not have much knowle

Differences between structured data and unstructured data, Explain the diff...

Explain the differences between structured data and unstructured data. Structured data are facts concerning objects and events. The most significant structured data are numeric

Keys - relational database integrity, Candidate Key:  In a relation R, a ca...

Candidate Key:  In a relation R, a candidate key for R is a subset of the set of attributes of R, which have the differnt two properties: (1)        Uniqueness:                N

#title., losers with new information systems

losers with new information systems

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