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

Normalization, Normalize the given relation to 3NF, justifying each step

Normalize the given relation to 3NF, justifying each step

Large Project, Can you help me with the following: Drop statements for all...

Can you help me with the following: Drop statements for all objects in the lab project. Create statements for all objects of the lab project Create indexes for foreign keys Cre

Extended star schema, Northwind Pty Ltd sells a variety of food products th...

Northwind Pty Ltd sells a variety of food products throughout the world.  They want to use the reporting features of SAP's Business Information Warehouse to better understand their

Explain the togaf framework for enterprise architectures, Question: (a)...

Question: (a) With the help of a diagram, explain the TOGAF framework for enterprise architectures. (b) Where would you position enterprise architectures in an enterpri

Process to find the non-concurrent objects, Process to find the non-concurr...

Process to find the non-concurrent objects Once we find out non-concurrent (mutually exclusive) objects, we can fold all objects together in one thread of process or control. O

Why were functional methods fashionable in early days, Why were functional ...

Why were functional methods fashionable in early days? These are inspired directly by computer architecture and thus popular among computer scientist in early days. The divisio

Explain network model in dbms, Explain Network Model in DBMS? Network ...

Explain Network Model in DBMS? Network Model - It was formalised within the late year of 1960s through the Database Task Group of the Conference on Data System Language (DBTG

What are the types of storage devices, What are the types of storage device...

What are the types of storage devices? Primary storage Secondary storage Tertiary storage Volatile storage Nonvolatile storage

Database, 3. (10 points) Assume that you have been presented with the follo...

3. (10 points) Assume that you have been presented with the following relation for the Baxter Aviation database: Charters (Pilot#, Pilot name, Aircraft ID#, #seats, Village, Fligh

What are the constituents of file, What are the Constituents of File? Also ...

What are the Constituents of File? Also elaborates all the possible file operations? A file is organised logically as sequence of record. These records are mapped onto disk blo

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