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

Mention the various user privileges, Mention the various user privileges ...

Mention the various user privileges All privileges directly granted to the user or role. All privileges granted to roles that have been granted to the user or role.

Determine the concept of process, Determine the concept of Process Pro...

Determine the concept of Process Process: A process transforms the data values. It is represented as ellipse containing a description of transformation. Each procedure has a

DSS, WHAT IS DSS? WRITE ITS REQUIREMENTS.

WHAT IS DSS? WRITE ITS REQUIREMENTS.

The concurrent transactions, The Concurrent Transactions  Almost every ...

The Concurrent Transactions  Almost every commercial DBMS support multi-user environment. Therefore, allowing multiple transactions to proceed concurrently. The DBMS must make

What is the disadvantage of a call by reference, What is the disadvantage o...

What is the disadvantage of a call by reference? During a call by reference damage or loss of data is not restricted to the subroutine, but will instantly lead to alters to th

Determine the subsystem design issue, Determine the Other System Design Iss...

Determine the Other System Design Issue How to realise subsystems; through hardware or software? How is object model mapped on chosen hardware software? Mapping

Write modified version of transfer that avoids deadlock, Your OS has a set ...

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 a

What is a super key, What is a super key? A super key is a set of one o...

What is a super key? A super key is a set of one or more attributes that collectively permits us to recognize uniquely an entity in the entity set.

What is entity in dbms, What is entity in DBMS? Entity: A DBMS entity i...

What is entity in DBMS? Entity: A DBMS entity is either a thing in the modelled world or a drawing element in an ERD.

Define query processing, Define Query Processing Query processing is th...

Define Query Processing Query processing is the process of selecting the best plan or strategy to be employed in responding to a database request. The plan is then executed to

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