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

Example of sequences, Example : Create a sequence named SEQSS that starts a...

Example : Create a sequence named SEQSS that starts at 105, has a step of 1 and can take maximum value as 2000.  CREATE SEQUENCE SEQSS START WITH 105 INCREMENT BY 1 MAX VA

What is the disadvantage of a call by reference, What is the disadvantage o...

What is the disadvantage of a call by reference? During a call by reference damage or loss of data is not restricted to the subroutine, but will instantly lead to alters to th

What is average response time, What is average response time? The avera...

What is average response time? The average response time is that the average time for a transaction to be done after it has been submitted.

Describe parameteric end users, Describe Parameteric end users? Paramet...

Describe Parameteric end users? Parametric end users might be given update access, but are commonly not permitted to change the structure of data.

System level permissions-data control, System level permissions : With the ...

System level permissions : With the use of data dictionary you can view them.       Let us take the table name as user_sys_privs (used in oracle).       DESCRIBE USER_SYS_PRI

State about the activity diagram, State about the Activity Diagram Act...

State about the Activity Diagram Activity diagrams show flow from one activity to other. It is an ongoing non atomic execution within a state machine. Activity finally results

RDBMS, DISADVANTAGES OF RDBMS

DISADVANTAGES OF RDBMS

Explain outer join, Explain outer join? Outer Join - If there are any...

Explain outer join? Outer Join - If there are any values in one table which do not have corresponding value(s) in the other, in an equi-join which will not be chosen. Such ro

What is meant by log-based recovery, What is meant by log-based recovery? ...

What is meant by log-based recovery? The most widely used structures for recording database changes is the log. The log is a sequence of log records, recording all the update a

User error-database errors, User error :  This contains errors in the progr...

User error :  This contains errors in the program (e.g., Logical errors) with errors made by online users of database.  These types of errors can be avoided by applying some check

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