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

Control as a state machine engine, Control as a State Machine Engine F...

Control as a State Machine Engine First let us define the state machine: "the state machine is a machine which is an object but not an application object. It is a part of lang

What is meant by buffer blocks and disk buffer, What is meant by buffer blo...

What is meant by buffer blocks and disk buffer   The blocks residing temporarily in main memory are referred to as buffer blocks. The area of memory where blocks reside t

Why does a dbms query language is designed, Why does a DBMS query language ...

Why does a DBMS query language is designed? A DBMS query language is designed to support end users who use English-like commands. support in the development of complex applicat

Explain er model, Question 1 Explain ER model Question 2 What are the...

Question 1 Explain ER model Question 2 What are the characteristics of a computer provided information? Question 3 What are facts and guidelines to be considered when se

Explain the outer join, Define Outer join Outer join - If there are any...

Define Outer join Outer join - If there are any type of values in the one table that do not have corresponding value(s) in the other, in an equi-join which will not be selected

What is icr, What is ICR? A. ICR (Intelligent Character Recognition) is...

What is ICR? A. ICR (Intelligent Character Recognition) is a technology that gives scanning and imaging systems the ability to identify images of hand-printed or script charact

Explain the term- event, Event Occurrence of a process is called event...

Event Occurrence of a process is called event. In other words, the object can receive many input instructions. The changes which occur due to these instructions are known as e

What is equi join, What is equi join? Equi Join - It generates all th...

What is equi join? Equi Join - It generates all the combinations of tuples from two relations which satisfy a join condition along with only equality comparison (=).

Two approaches to store relations in distributed database, What are the two...

What are the two approaches to store relations in distributed database? a) Replication b) Fragmentation

Prepare heart failure registry database, Prepare Heart Failure Registry dat...

Prepare Heart Failure Registry database How are you today? Please I would like you to design a Heart Failure registry where doctors will log in to enter information about their

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