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

Distributed query and transaction processing, a.  Construct a query around ...

a.  Construct a query around any one of the functional divisions you made in 4a such that if executed in the distributed design of 4 would require reconstruction of at least two ho

Construct an er diagram for a hospital, Construct an ER diagram for a hospi...

Construct an ER diagram for a hospital along with a set of patients and a set of medical doctors Associate with every patient a log of the several tests and examinations conducted.

Primary and foreign key, Primary Key The primary key is the candidate k...

Primary Key The primary key is the candidate key that is selected by the database designer as the principal denotes of identifying entities within an entity set. The left candi

Define deadlock term, a. Define the term "deadlock". There are four conditi...

a. Define the term "deadlock". There are four conditions that must hold before deadlock is possible. Name them. b. Outline an algorithm that detects whether there is a deadlock.

Key constraint - relational constraints, This constraint shows that the key...

This constraint shows that the key attribute value in each tuple must be unique, i.e., no two tuples have the similar value for the key attribute. This is because the value of the

Assignment, What are the typical phases of query processing

What are the typical phases of query processing

Explain what is ddl, Explain what is DDL? DDL - Data Definition Languag...

Explain what is DDL? DDL - Data Definition Language: statements used to define the database structure or schema. Some examples: CREATE - to create objects in the database ALT

Identify all renters who have viewed all properties, Consider the subsequen...

Consider the subsequent relations RENTER(rno, fname, lname, address, tel_no, pref_type, max_rent) VIEWING(rno, pno, date, comment) PROPERTY_FOR_RENT( pno, street, area ,city,

Describe the types of attributes, Describe the types of attributes? Ty...

Describe the types of attributes? Types of attributes: An attribute's category determines the type of values that are permitted in the attribute. For instance, the value vers

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