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 what is rdbms, Explain what is RDBMS ? RDBMS - RDBMS is a datab...

Explain what is RDBMS ? RDBMS - RDBMS is a database management system (DBMS) which stores data within the form of relations. Relational databases are powerful since they need f

Explain outer join, Explain outer join? Outer Join - If there are any...

Explain outer join? Outer Join - If there are any values in one table which do not have corresponding value(s) in the other, in an equi-join which will not be chosen. Such ro

Query to delete constraint from alter table, A constraint named less_than_2...

A constraint named less_than_20 was defined on the field date_of_birth of table student. Delete this constraint. ALTER TABLE student DROP CONSTRAINT less_than_20;

Ldb hierarchy there should exist one get statement, It is mandatory that fo...

It is mandatory that for every table in the LDB hierarchy there should exist one GET statement in the report. False.  It is not essential.

What is cardinality ratio, What is Cardinality Ratio? Cardinality Rati...

What is Cardinality Ratio? Cardinality Ratios - The cardinality ratios for relationship kinds specifies the maximum number of relationship instances in which an entity can pa

Define seek time, Define seek time. The time for repositioning the arm ...

Define seek time. The time for repositioning the arm is known as the seek time and it enhances with the distance that the arm is known as the seek time.

Unnormalize form, employee(empid,empname,dept,telno,mobno, add,sssno,tinno,...

employee(empid,empname,dept,telno,mobno, add,sssno,tinno,WEdates,WEcomp,WEadd,WEpos,WEres) this is a employee record which is need to be normalize.the WE means work experience

What is a database graph, What is a database graph? The partial orderin...

What is a database graph? The partial ordering implies that the set D may now be viewed as a directed acyclic graph, known as a database graph.

Explain entity integrity and referential integrity rules, Explain entity in...

Explain entity integrity and referential integrity rules within relational model. Show how these are realized in SQL? Entity Integrity Rule - No primary key value could be nu

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