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

Create student database and retrieve course taught by king, Create student ...

Create student database and retrieve course name taught by king? STUDENT (name, student#, class, major) COURSE (course name, course#, credit hours, department) SECTION (secti

BCA, Ask qu. Write a XML with database with book details (Book ID, Title, A...

Ask qu. Write a XML with database with book details (Book ID, Title, Author, subject, published year, language, vendor, and price).estion #Minimum 100 words accepted#

Importance of file organisation in database, Importance Of File Organisatio...

Importance Of File Organisation In Database To execute a database efficiently, there are various design tradeoffs needed. One of the most vital ones is the file Organisation. F

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

ERD DIAGRAM, Law Associates is a large legal practice based in Sydney. You...

Law Associates is a large legal practice based in Sydney. You have been asked to design a data model for the practice based upon the following specification: The practice employs

Multilevel indexing scheme, Multilevel Indexing Scheme Consider the ind...

Multilevel Indexing Scheme Consider the indexing scheme where the address of the block is consider in the index for each record, for a little file, this index would be little a

Define the concept of generalization, Define the concept of generalization ...

Define the concept of generalization A generalization is relationship between specific kind of thing and general thing. It is also known as "is-a-kind-of" relationship. Inher

What is difference between truncate and delete, What is difference between ...

What is difference between TRUNCATE and DELETE? - Truncate can't be rolled back whereas Delete can be. - Truncate keeps the lock on table whereas Delete keeps the lock on ea

E-R MODEL, WHAT IS MEANT BY E-R MODEL

WHAT IS MEANT BY E-R MODEL

Architecture, With the help of a suitable diagram gives module wise explana...

With the help of a suitable diagram gives module wise explanation of system architecture of DBMS.on..

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