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

Draw entity relationship diagram, Draw entity relationship diagram for the ...

Draw entity relationship diagram for the following scenario. A university has many departments whereas each department belongs to that particular uni. That uni has also many bui

Dataware house, ) Define a job scheduling strategy that will meet business ...

) Define a job scheduling strategy that will meet business requirement of reporting availability by 6am CST for the following cubes? Show the job scheduling dependencies in a picto

Determine the two special events, What are two special events? The two ...

What are two special events? The two special events are as "entry" and "exit". Any action which is marked as linked to entry event is executed whenever given state is entered v

A step-wise distributed database design methodology, A step-wise distribute...

A step-wise distributed database design methodology Following is a step-wise methodology for distributed database design. (1) Examine the nature of distribution. Find out wh

RDBMS, why data in an RDMS need to be normalised

why data in an RDMS need to be normalised

Security and integrity, Security And Integrity After Reading the concep...

Security And Integrity After Reading the concepts of database recovery in the last section, let us now deal with a vital concept that helps in minimizing consistency errors in

Give an example of multiple inheritance, Give an example of multiple inheri...

Give an example of multiple inheritance.  One example of multiple inheritance is a committee for students affair which include faculty and administrative staff member.

Apriori algorithm-find all frequent large itemsets, Your friend owns a comp...

Your friend owns a computer store in Yuen Long, selling Desktop and Notebook PCs and other computer peripherals. Having been rather successful with his business there, he decided t

What is ocr, What is OCR? OCR (Optical Character Recognition) is a tech...

What is OCR? OCR (Optical Character Recognition) is a technology that enables you to change different types of machine-readable documents, like scanned paper documents, PDF fil

Discuss the three level architecture of dbms, PRINCIPLES OF DATABASE 1....

PRINCIPLES OF DATABASE 1. State the following terms: a) Database b) Database Management System c) Entity d) Attribute e) Relationship 2. Discuss the Three Level Architecture

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