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 object oriented model, Explain Object oriented Model ? Object ...

Explain Object oriented Model ? Object Oriented Model - This model is based on the object-oriented programming language paradigm. It involves the features of OOP such as inhe

What is index, What is Index? An index is a physical structure having p...

What is Index? An index is a physical structure having pointers to the data. Indices are created in an existing table to locate rows more quickly and efficiently. It is possibl

Which data type can store unstructured data, Which data type can store unst...

Which data type can store unstructured data? Raw data type can store unstructured data.

State about the tables- DBMS, State about the Tables- DBMS Data is sto...

State about the Tables- DBMS Data is stored in columns and rows (much like a spreadsheet -main difference is how data is organised). Every row in a table is known as a record

View of data, how to submit answers softcopy

how to submit answers softcopy

Appointment systems with sms and voice call feedback, Automated system for ...

Automated system for appointment with sms and call confirmation with service providers and user has to be initiate automatically. After selecting time and date to use service, s

Describe dynamic model, Describe Dynamic Model. The dynamic model speci...

Describe Dynamic Model. The dynamic model specifies allowable sequences of changes to the objects from an object model. It contains event trace diagrams describing scenarios. A

What is a b+-tree index, What is a B+-Tree index? A B+-Tree index takes...

What is a B+-Tree index? A B+-Tree index takes the form of a balanced tree in which each path from the root of the root of the root of the tree to a leaf of the tree is of the

What do you mean by an execution plan, What do you mean by an execution pla...

What do you mean by an execution plan? Why is it used? How will you view it? a.) An execution plan can be known as a road map which textually or graphically illustrates the dat

Describes the several relationship constraints, Describes the several relat...

Describes the several relationship constraints through giving suitable example? Constraints on relationships: There are two kinds of constraints on relationships. 1) Mapping

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