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

Define one-way associations using pointers, One-way Associations If an...

One-way Associations If an association is only traversed in single direction, then it is known as one-way association. It is implemented as a pointer or an attribute which con

Data models, After going by the database architecture, let us now dwell on ...

After going by the database architecture, let us now dwell on an important query: how is the data organised in a database? There are a lot of basic structures that exist in a datab

What is null, What is NULL? Simply NULL means not in value.

What is NULL? Simply NULL means not in value.

ERD, #question.ERD of any car

#question.ERD of any car

Define weak and strong entity sets, Define weak and strong entity sets?  ...

Define weak and strong entity sets?  Weak entity  set:  entity  set  that  do not  have  key  attribute  of  their  own are  known as weak entity sets.  Strong entity set

What is meant by log-based recovery, What is meant by log-based recovery? ...

What is meant by log-based recovery? The most widely used structures for recording database changes is the log. The log is a sequence of log records, recording all the update a

Domain constraint, Domain Constraint It shows that each attribute in a ...

Domain Constraint It shows that each attribute in a relation has to contain an atomic value only from the corresponding domains. The data types associated with commercial RDBMS

Sorting field groups we cannot use more than one key field, While sorting f...

While sorting field groups we cannot use more than one key field False.

Need senior oracle database administrator, Project Description: Oracle C...

Project Description: Oracle Certified Professional with 20 years of practice, Oracle version 6.0.34, 7.3, 8.0, 8i, 9i, 10G, 11G, 12C. Crossplatform migration, Informix, MSSql

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