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

Write a short note on oracle instance, Write a short note on oracle Instanc...

Write a short note on oracle Instance? Oracle Instances: An instance is the (executed) Oracle software and the memory they use. It is the instance which manipulates the data s

In e-r diagram how generalization is represented, In E-R diagram how genera...

In E-R diagram how generalization is represented? in E-R diagram generalization is represented by Triangle shape.

Production management, create an er diagram for production management in fi...

create an er diagram for production management in film industry

Explain query tree represent relational algebra expression, How does a quer...

How does a query tree represent a relational algebra expression?      Ans: This includes transforming an initial expression (tree) into an equivalent expression (tree) that is

What is null described testing for null in sql?, What is NULL? Give an exa...

What is NULL? Give an example to described testing for NULL in SQL? The NULL SQL keyword is used to represent either a missing value or a value which is not applicable in a re

Explain the term- data flows, Explain the term- Data Flows Data Flows:...

Explain the term- Data Flows Data Flows: A data flow connects output of an object or process to input of another process or object. It represents an in-between data value wit

Hierarchical data representation model, Examples:- Hierarchical Model: I...

Examples:- Hierarchical Model: It tells data as and relationships by hierarchy of data values. Figure illustrates an example of hierarchical model. Now a day's these models are

Define the terms key attribute and value set, Define the terms i) Key attr...

Define the terms i) Key attribute ii) Value set Key attribute: An entity type usually has an attribute whose values are exact from each individual entity in the collection. Su

Explain concurrency control, Explain concurrency control? Concurrency ...

Explain concurrency control? Concurrency control Oracles multiversion concurrency control varies from the concurrency mechanism used by some other data base vendors. Read

Identify all renters who have viewed all properties, Consider the subsequen...

Consider the subsequent relations RENTER(rno, fname, lname, address, tel_no, pref_type, max_rent) VIEWING(rno, pno, date, comment) PROPERTY_FOR_RENT( pno, street, area ,city,

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