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

Writing a pl/sql program, Problem 1. Create a PL/SQL program to insert ...

Problem 1. Create a PL/SQL program to insert data into student table and display the details of the student having Reg.No 1010 Writing a PL/SQL program to Insert data

Oracle, how oracle can be used

how oracle can be used

Explain what is to be done during defining problem statement, Briefly expla...

Briefly explain what is to be done during defining problem statement. To define Problem Statement of a system, define what is to be done and how you can go to implement that. Y

Query to delete constraint from alter table, A constraint named less_than_2...

A constraint named less_than_20 was defined on the field date_of_birth of table student. Delete this constraint. ALTER TABLE student DROP CONSTRAINT less_than_20;

What is null described testing for null in sql?, What is NULL? Give an exa...

What is NULL? Give an example to described testing for NULL in SQL? The NULL SQL keyword is used to represent either a missing value or a value which is not applicable in a re

3NF, Winfield is a small city with a population of 22,000 with buses serves...

Winfield is a small city with a population of 22,000 with buses serves three routes in Winfield and neighboring areas. As the city’s IT director, you have been asked to set up an i

Fragmentation-design of distributed databases, Fragmentation: It is defini...

Fragmentation: It is definite as partitioning of a relation into various fragments.Every fragment can be stored at a dissimilar site.

What is boyce-code normal form, Boyce-Code Normal Form (BCNF) A relatio...

Boyce-Code Normal Form (BCNF) A relationship is said to be in BCNF if it is already in 3NF and the left hand side of each dependency is a candidate key. A relation who is in 3N

E-R MODEL, WHAT IS MEANT BY E-R MODEL

WHAT IS MEANT BY E-R MODEL

Distributed and client server databases, Distributed And Client Server Data...

Distributed And Client Server Databases Introduction This unit tells the distributed database systems which are primarily relational and one important execution model: the

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