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

Which database object does not physically exist, Which database object does...

Which database object does not physically exist? A view database object does not physically exist.

Describe the term- state diagram, Describe the term- State Diagram Sta...

Describe the term- State Diagram State Diagram: An object could receive a sequence of the input instructions. The state of the object can differ depending upon sequence of in

Benefits abd drawback of hashed file organisation, Benefits of Hashed file ...

Benefits of Hashed file Organisation 1.      Insertion or search on hash-key is quick. 2.      Best if equality search is required on hash-key. Drawbacks of Hashed file

Software failures-database recovery and security, Software failures :  In s...

Software failures :  In such cases, a software error abruptly stops the implementation of the current transaction (or all transactions), therefore leading to losing the state of pr

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

Explain the shadow paging recovery technique, Explain the shadow paging rec...

Explain the shadow paging recovery technique.  Ans: Shadow paging is a method used to acquire atomic and durable transactions, and provides the capability to manipulate pages i

How can redundant associations be done, How can Redundant Associations be d...

How can Redundant Associations be done It can be done by asking questions: i)  Is there a specific arrangement of network which would optimize critical aspects of completed

Difference among a primary index and a secondary index, What is the differe...

What is the difference among a primary index and a secondary index? Primary Index: A primary index is an ordered file whose records are of fixed length along with two fields.

What is a transaction, What is a Transaction? A transaction is an even...

What is a Transaction? A transaction is an event which happens on the database. Generally a transaction reads a value from the database or writes a value to the database. If y

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