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

Describe object relational model, Describe Object Relational model ? O...

Describe Object Relational model ? Object Relational Model - This model combines the characteristics of both relational model and object oriented model. It extends the tradit

List the drawbacks of relational database system, List the drawbacks of rel...

List the drawbacks of relational database system A) Repetition of data B) Inability to s certain information.

Define data conversion, Define data conversion? Helpful to load data in...

Define data conversion? Helpful to load data into temporary staging tables. Then can write SQL code to do much of data processing. SQL code is simpler and faster to write than

What is an index, What is an Index? An index is a small table having on...

What is an Index? An index is a small table having only two columns. The first column has a copy of the primary or candidate key of a table and the second column having a set o

Why as clause is used in sql, Why 'AS' clause is used in SQL ? 'As' cla...

Why 'AS' clause is used in SQL ? 'As' clause is used for Rename operation. ‘AS' clause is used in SQL for rename operation. (e.g., SELECT ENO AS EMPLOYEE_NO FROM EMP)

Attribute preservation, Attribute Preservation This is a easy and obvio...

Attribute Preservation This is a easy and obvious necessity that includes preserving all the attributes that were there in the relation that is being decomposed.

Create a new service-based database, In this assignment, you will create a ...

In this assignment, you will create a program that works with multiple tables. In this assignment, you will work with the factory and sales tables. 1. Create a new project nam

Two approaches to store relations in distributed database, What are the two...

What are the two approaches to store relations in distributed database? a) Replication b) Fragmentation

What are the time stamps associated with each data item, What are the time ...

What are the time stamps associated with each data item? W-timestamp (Q) denotes the largest time stamp if any transaction that implemented WRITE (Q) successfully. R-timesta

How can we classify the operations on classes, How can we Classify the oper...

How can we Classify the operations on classes  This step fundamentally means all three models functional, object and dynamic (studied in last section) must be combined so that

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