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 fourth normal form, Fourth Normal Form (4NF) When attribut...

Fourth Normal Form (4NF) When attributes in a relation have multi-valued dependency, further Normalization to 4NF and 5NF are needed. Let us first find out what multi-valued d

What is predictive modelling, Problem: (a) Data mining is one of the b...

Problem: (a) Data mining is one of the best ways to analyse data and using software techniques, hidden and unexpected patterns and relationships in sets of data can be extrac

What is functional dependency, What is Functional Dependency? A Functi...

What is Functional Dependency? A Functional dependency is shown by X Y among two sets of attributes X and Y that are subsets of R specifies a constraint on the possible tuple

Define partial, Partial Key : It is a group of attributes that can uniquel...

Partial Key : It is a group of attributes that can uniquely identify small entities and that are related to same base entity. It is sometime named as Discriminator.  Altern

Process of implementing system design in dynamic models, Process of impleme...

Process of implementing system design in dynamic models There are three essential approaches to implementing system design in dynamic models. These approaches are as below:

Define deadlock recovery measures, Define Deadlock recovery measures       ...

Define Deadlock recovery measures                   To recover from deadlock, the cycle in the wait-for-graph should be broken. The common technique of doing this is to rollbac

What is multivalued attribute, What is Multivalued Attribute? Multival...

What is Multivalued Attribute? Multivalued Attribute - Multivalued attribute might have more than one value for an entity. For instance, PreviousDegrees of a STUDENT.

Describe the iterative and incremental life cycle, Describe the iterative a...

Describe the iterative and incremental life cycle For an iterative and incremental life cycle, two criteria are process and time. The main components of showing a project devel

Describe the menu based interfaces for web clients browsing, Describe the M...

Describe the Menu based interfaces for web clients or browsing? Menu-Based Interfaces for Web Clients or Browsing - These interfaces present the user along with lists of option

What is an index, What is an index? An index is a structure that helps ...

What is an index? An index is a structure that helps to place desired records of a relation quickly, without probing all records.

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