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

Explain about primary key, Explain about primary key Primary Key: It ...

Explain about primary key Primary Key: It is one of the candidate keys that are taken to be the recognizing key for the entire table. E.g. although there are two candidate ke

What are the aggregate objects in the data dictionary, What are the aggrega...

What are the aggregate objects in the data dictionary? Views Match codes Lock objects.

Statistical analysis of data, An important first step to the statistical an...

An important first step to the statistical analysis of data is to "get to know your data".  The following tasks should contribute to this. (a)   To the right of the dataset cons

DW, #ques Define a job scheduling strategy that will meet business requirem...

#ques Define a job scheduling strategy that will meet business requirement of reporting availability by 6am CST for the following cubes? Show the job scheduling dependencies in a p

Define what Immediate database modification technique uses, Define what Imm...

Define what Immediate database modification technique uses?  Ans: Both undo and redo.

Extended star schema model, A customer places orders for parts and belongs ...

A customer places orders for parts and belongs to a particular industry group. An individual order is taken by a particular sales representative on a specific date and the sales re

Compare wait-die deadlock prevention with wait-wound scheme, Compare wait-d...

Compare wait-die deadlock prevention scheme with wait-wound scheme   Ans:  Wait-Die Scheme  a) Based upon a nonpreemptive technique.  b) If Pi requests a resource present

Draw an e-r diagram and convert it to a relational schema, In an organizati...

In an organization several projects are undertaken. Each project can employ one or more employees. Each employee can work on one or more projects. Each project is undertaken on the

What is distributed system, What is Distributed system ? Distributed S...

What is Distributed system ? Distributed System - A distributed system consists of a number of processing parts in which are interconnected through a computer network and in

Entity - relation modeling and transformation, Represent the following scen...

Represent the following scenarios with E-R diagrams drawn using the ER Assistant software. The diagrams should indicate cardinality and optionality of relationships. Transform each

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