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

ERD, A student entity type has the following attributes,name..

A student entity type has the following attributes,name..

Explain the five levels of capability maturity models, Question 1 What is ...

Question 1 What is data mining? Write Data Mining applications Question 2 What is OLAP? Write the benefits of OLAP Question 3 What is Business Intelligence? Explai

Develop a simple database of student records, In this programming assignmen...

In this programming assignment, you will develop a simple database of student records. Here are the requirements: 1) A student record contains a name and a number. We assume tha

What are costs to be considere when transaction is roll back, What are the ...

What are the costs to be considered when a transaction has to be rolled back when recovering from deadlock?         Ans: A few transaction will must rolled back (made a victim)

What is object identity, What is object identity? An object retains its...

What is object identity? An object retains its identity even if some or all the values of variables or explanations of methods change overtime.

Example database application, We will explain here an example database appl...

We will explain here an example database application having COLLEGE database and use it in showing several E-R modelling concepts. College database remains track of faculty, Stu

In a hierarchical model of data records are organized, In a Hierarchical mo...

In a Hierarchical model of data records are organized ? In the hierarchical model of data records are organized as Tree structure.

Design and build a data mart, You are required to design and build a data m...

You are required to design and build a data mart/data warehouse using Oracle. A national bank allocates funding every year for its local branches to provide temporary staff cove

Describe the major steps in the implementation process, Question: (a) ...

Question: (a) One of the steps in the five-step problem-solving model is implementation. Implementation is considered a key step in the problem-solving model. A problem may be

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