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

Unit database integrity, Relations create the database. They must satisfy v...

Relations create the database. They must satisfy various properties, like no duplicate tuples, no ordering of tuples, and atomic attributes, etc. Relations that satisfy these basic

Record based logical models, Record based Logical Models: Use records as th...

Record based Logical Models: Use records as the key data representation components Examples: Relational Model: It shows data as well as relationship between data in the form

MYSQL, write an SQL statement to create the database in MYSQL server

write an SQL statement to create the database in MYSQL server

Draw an entity-relationship model, Draw an Entity-Relationship model for ...

Draw an Entity-Relationship model for the relational schema given in the Appendix. Show all the entities, relationships, relationship names, and attributes and also underline the

What do you understand by raid, What do you understand by RAID? Explain RA...

What do you understand by RAID? Explain RAID Level 4 and Level5? RAID - It is stands for Redundant Array of Inexpensive Disks (as named by the inventor), or alternatively Re

Describe the nested-loop join and block-nested loop join, Describe the nest...

Describe the nested-loop join and block-nested loop join.   Ans:   The block nested- loop join algorithm is as described below:     for every block B r of relation R do beg

Basics of relational models, In the first unit of this block, you have been...

In the first unit of this block, you have been given with the details of the Database Management System, its structure, advantages etc. This unit is an attempt to give you informat

Keys, it can be possible to create any table without primary key

it can be possible to create any table without primary key

Principles of good e-governance, Question: (a) e-Government implementa...

Question: (a) e-Government implementations normally evolve through a multi-stage process. Describe, using appropriate examples, the stages involved in an e-Government implemen

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