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 stand alone query language in details, Explain Stand Alone Query La...

Explain Stand Alone Query Language in details? Stand alone Query Language - The query language that can be used interactively is known as stand alone query language. It does no

What are stand-alone procedures, What are stand-alone procedures? Proce...

What are stand-alone procedures? Procedures that are not part of a package are called as stand-alone because they independently defined. A good example of a stand-alone procedu

Which is another name for weak entity, Which is another name for weak entit...

Which is another name for weak entity? Child is another name of weak entity.

Normalization, Process of normalization is the integral part of designing a...

Process of normalization is the integral part of designing a database. Justify this statement with suitable database design

Illustrate the class diagram for class room scheduling, Illustrate the clas...

Illustrate the class diagram for class room scheduling system If in any college, the number of classrooms are limited which have to be allocated to various classes and instruct

What is secondary index, What is Secondary Index While making the index...

What is Secondary Index While making the index, generally the index table is kept in the primary memory (RAM) and the main table, because of its size is keeps in the secondary

Explain the two constraints check and foreign key in sql, Explain the two c...

Explain the two constraints, check and foreign key in SQL along with an example for each. Give the syntax. CHECK constraint - CHECK constraint specifies an expression which

Client server databases, Client Server Databases- The concept behind the C...

Client Server Databases- The concept behind the Client/Server systems is simultaneous, cooperative processing. It is an approach that presents a one systems view from a user's vie

What is meant by heuristic optimisation, What is meant by heuristic optimis...

What is meant by heuristic optimisation?Discuss the major heuristics that are applied during query optimisation.

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