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 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

Define object-relational systems, Define object-relational systems? Sy...

Define object-relational systems? Systems that give object-oriented extensions to relational systems are known as object-relational systems.

Control as a state machine engine, Control as a State Machine Engine F...

Control as a State Machine Engine First let us define the state machine: "the state machine is a machine which is an object but not an application object. It is a part of lang

Explain superkey, Explain Superkey Ans: A superkey is described in the ...

Explain Superkey Ans: A superkey is described in the relational model of database organization like a set of attributes of a relation variable for which it holds that in all re

Explain the function of object model, Explain the function of Object model ...

Explain the function of Object model Object model describes the classes of objects in system, including their attributes and operations which they support. The analysis object

What is called a query evaluation plan, What is called a query evaluation p...

What is called a query evaluation plan? A sequence of primitive operations that can be used to assess a query is a query evaluation plan or a query implementation plan.

What count function return in sql, What Count function return in SQL? C...

What Count function return in SQL? Count function within SQL returns the number of values. (Count function counts all the not null values in the exact column. If we need to cou

What is difference between truncate and delete, What is difference between ...

What is difference between TRUNCATE and DELETE? - Truncate can't be rolled back whereas Delete can be. - Truncate keeps the lock on table whereas Delete keeps the lock on ea

What is the initial step for object-oriented designing, What is the initial...

What is the initial step for object-oriented designing The initial step for object-oriented designing is object modeling. Before we go into deep about object modeling first of

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