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

Database integrity and database security, Question : (a) Differentiate ...

Question : (a) Differentiate between database integrity and database security (b) Database security involves measures to avoid loss of privacy and loss of confidentiality. D

Question, I want to buy this but I want to see a couple sample questions fi...

I want to buy this but I want to see a couple sample questions first. http://www.expertsmind.com/library/what-happens-to-rms-error-for-the-training-data-set-51564843.aspx

Case snerio, each publisher has uniqe name a mial addrs are also kept on ea...

each publisher has uniqe name a mial addrs are also kept on each pubisher.a publisher publish one book.a book publish y one publisher.book identified by isbn.each book writn by one

What is a view in sql and when can views be updated, What is a view in SQL?...

What is a view in SQL? When can views be updated? A view is a virtual table which consists of columns from one or more tables. Through it is same to a table; it is stored in

NORRMALIZATION, Home based assignment Consider an ORDER table with the foll...

Home based assignment Consider an ORDER table with the following attributes: • Order Number (ONo),Customer Number (CNo),Customer Name (CNa),Item Number (INo),Unit Price (UP), Quant

Explain relational model and their use in dbms, Explain Relational model an...

Explain Relational model and their use in DBMS? Relational Model - The relational model was first introduced through E.F. Codd of the IBM Research in the year of 1970. The mode

What are called index-sequential files, What are called index-sequential fi...

What are called index-sequential files? The files that are ordered sequentially with a primary index on the search key are known as index-sequential files

Write short notes on data ware housing, Write short notes on data ware hous...

Write short notes on data ware housing? Data ware housing applications needs the transformation of data from many sources into a cohesive reliable step set of data configured a

Determine the Disadvantages of file based systems, Determine the Disadvanta...

Determine the Disadvantages of file based systems Some of the disadvantages of file based systems are like this: Data redundancy and inconsistency: the dissimilar applic

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