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

Example on relational database schema, Question: The following relation...

Question: The following relational database schema corresponds to a part of a database used by the Registry Department of a university. DEPARTMENT (d#, d-name, head-of-dept)

Describe embedded query language, Describe Embedded Query Language? Emb...

Describe Embedded Query Language? Embedded Query Language - A query language (e.g., SQL) can be implemented in two ways. It can be used interactively or embedded within a host

Explain the term- data flows, Explain the term- Data Flows Data Flows:...

Explain the term- Data Flows Data Flows: A data flow connects output of an object or process to input of another process or object. It represents an in-between data value wit

What are the uses of the information in the data dictionary, What are the u...

What are the uses of the information in the Data dictionary? The following information is directly taken from the Data dictionary: Information on fields displayed with

Describe parameteric end users, Describe Parameteric end users? Paramet...

Describe Parameteric end users? Parametric end users might be given update access, but are commonly not permitted to change the structure of data.

Although how will the system recover, Although how will the system recover ...

Although how will the system recover The selection of REDO or UNDO for a transaction for the recovery is completed on the basis of the state of the transactions. This state is

Illustrate package classes and associations into models, Package classes an...

Package classes and associations into models  Programs are made of separate physical units which could be edited, imported, complied or otherwise manipulated. The careful part

Clinic, Need a sample of a clinic database relationships

Need a sample of a clinic database relationships

Evaluate the bulleted list of information-related items, Critically evaluat...

Critically evaluate the bulleted list of information-related items in this case study. How are each contradictory to the notion of being an information-literate knowledge worker?

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