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

Explain the timestamp ordering protocol, Timestamp Ordering Protocol A ...

Timestamp Ordering Protocol A timestamp is a tag that can be attached to any transaction or any data item, which indicates a specific time on which the transaction or data item

Define the basic operations of the relational algebra, Define the basic ope...

Define the basic operations of the relational algebra?     Ans: Basic operators of relational algebra are: 1. Union (∪) - Selects tuples which are in either P or Q or in bot

What are the different approaches for database design, What are the differe...

What are the different approaches for database design? There are two basic approaches for database design which are as follows: Attribute driven: It compiles a list of att

How to design a formal and exact model, How to design a formal and exact mo...

How to design a formal and exact model How to design a formal and exact model of real-world problems by applying findings of analysis phase of OMT. The object design phase find

What is primary key, What is Primary key? Primary Key - Primary key i...

What is Primary key? Primary Key - Primary key is one of the candidate keys which uniquely identifies each row in the relation.

What is meant by buffer blocks and disk buffer, What is meant by buffer blo...

What is meant by buffer blocks and disk buffer   The blocks residing temporarily in main memory are referred to as buffer blocks. The area of memory where blocks reside t

Can your organization scan large format documents, Can your organization sc...

Can your organization scan large format documents? Yes, large format scanning used for such entities as city plans and blueprints is available. We selected scanners with the ab

What are the disadvantages of file processing system, What are the disadvan...

What are the disadvantages of file processing system? The drawbacks of file processing systems are a) Data redundancy and inconsistency b) Complexity in accessing data

Relational database, Consider the following relational database: STUDENT (n...

Consider the following relational database: STUDENT (name, student#, class, major) COURSE (course name, course#, credit hours, department) SECTION (section identifier, course#, sem

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