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

State the terms designing the database and normalization, State the terms D...

State the terms Designing the database and Normalization Designing the database: Out of the ERD we have formed, it is very easy to verify the tables, the attributes which the

Deadlock and its prevention, Deadlock And Its Prevention: As seen earlier,...

Deadlock And Its Prevention: As seen earlier, though two phase locking protocol handles the trouble of serialisability, but it causes some troubles also. For instance, consider th

Define the attribute inheritance, Define the Attribute Inheritance The ...

Define the Attribute Inheritance The attributes of a higher level entity set are inherited through a lower level entity set made by specialization-generalization hierarchy. Nam

School portal design and development, Project Description: This is going...

Project Description: This is going to be a School portal to handle each activities in school such as, School fees payment, online registration and every other payment, course re

Which method is used to key transformation, Which method is used to key tra...

Which method is used to key transformation ? A hash method is used to key transformation.

What is a linked server, What is a Linked Server? Linked Servers is a m...

What is a Linked Server? Linked Servers is a method in SQL Server by which we can add other SQL Server to a Group and query both the SQL Server dbs using T-SQL Statements. With

Define a view and a trigger, Define a view and a trigger. Construct a view ...

Define a view and a trigger. Construct a view for the above relations that have the information about suppliers and the elements they supply. The view holds the S#, SNAME, P# , PNA

Fire department, The State of Newyork certifies firefighters throughout sta...

The State of Newyork certifies firefighters throughout state keep track all of them, as well as the state’s of fire departments. Each fire department has unique department number

Explain two phase locking protocol, Explain Two phase locking protocol ...

Explain Two phase locking protocol A transaction is consider as to follow the two-phase locking protocol if all locking operations precede the first unlock operation in the tra

Database models, why are older data models are being replaced by new data m...

why are older data models are being replaced by new data models

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