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

Cartisian product, Explain the cartesian product in Database Management Sys...

Explain the cartesian product in Database Management System

Secondary indexes, Secondary Indexes Let consider the student database ...

Secondary Indexes Let consider the student database and its clustering index and primary (only one will be applicable at a time). Now consider the state when the database is to

Describe physical data independence, Describe Physical Data independence ? ...

Describe Physical Data independence ? Physical Data Independence - It is capacity to modify the internal schema without having to change conceptual schema. Therefore, the exter

Need for client server computing, Need for Client Server Computing- Client/...

Need for Client Server Computing- Client/Server (C/S) architecture includes running the application on multiple machines in which every machine with its component software tackles

Explain the term- query, Explain the term- Query. Queries are used to re...

Explain the term- Query. Queries are used to repossess and show specific records in a table. They can also be used to show specific fields of specific records, which meet the co

How to create values of structured type, How to create values of structured...

How to create values of structured type? Constructor functions are used to make values of structured types. A function with the similar name as a structured type is a construct

Differance between join and outer join, Differentiate between join and oute...

Differentiate between join and outer join? Outer joins return all rows from at least one of the tables or views mentioned within the FROM clause, as long as those rows get toge

What type of view of total database content, What type of view of total dat...

What type of view of total database content? Data base content Conceptual view of total database contain.

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

Explain disadvantages of a dbms, Question : (a) Database Management Sy...

Question : (a) Database Management Systems (DBMS) is the foundation of business intelligence. Explain the following concepts related to DBMS: (i) Entity Relationship Diagr

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