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

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 about database system structure, Explain about database system stru...

Explain about database system structure? Storage manager Authorization and integrity manager Transaction manager File manager Buffer manager Storage manager

Hierarchical data representation model, Examples:- Hierarchical Model: I...

Examples:- Hierarchical Model: It tells data as and relationships by hierarchy of data values. Figure illustrates an example of hierarchical model. Now a day's these models are

Mobile database, write short note on mobile database

write short note on mobile database

Lack of redundancy, Lack of Redundancy We have talked about the problems o...

Lack of Redundancy We have talked about the problems of repetition of information in a database. Such repetition should be stay away as much as possible. Let us state once again t

What is the need of a log in a dbms, What is the need of a log in a DBMS? B...

What is the need of a log in a DBMS? Briefly describe the various types of records that are normally present in a log.            Ans:  The system log, which is generally writt

Prepare a site map and submit it in bing and google, Project Description: ...

Project Description: I am updating my Javascript + HTML website with five domains for the same website I would like to know if I want to create site map and submit it in all the

Explain the dependency relationship of object oriented, Explain the depende...

Explain the dependency relationship of object oriented A dependency is a relationship which states that a change in specification of one thing can affect another thing, but n

Intersection, If R1 and R2 are two union compatible relations or functions,...

If R1 and R2 are two union compatible relations or functions, then the result of R3 = R1 ∩R2 is the relation that contains all tuples that are in both the relations In other words,

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