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

Where and having clause in sql, WHERE and HAVING clause in SQL ? The WH...

WHERE and HAVING clause in SQL ? The WHERE clause is commonly used for implementing conditions on each tuple of the relation. The HAVING clause is used in combination along wi

Which components of the schema architecture proposed by ansi, What are thre...

What are three components of the schema architecture proposed by ANSI/SPARC? The three component schema architecture proposed by ANSI/SPARC is as given below: External sche

Define sequence, Define Sequence A sequence is a set of integers 1, 2, ...

Define Sequence A sequence is a set of integers 1, 2, 3 that are generated in order on demand. Sequences are regularly used in databases because lots of applications require ev

Write a short note on built in function in qbe, Write a short note on built...

Write a short note on built in function in QBE? Built in function in QBE: QBE involves various built in functions like AVG, MAX,MIN,SUM and CNT. We must prefix these operator

Explain hashing techniques, Explain Hashing techniques The hashing tech...

Explain Hashing techniques The hashing techniques can be categorized as: Static Hashing Techniques - In this method, the data can be viewed a collection of buckets, along with

Confirming.., I just purchased a document for you guys and wanted to confir...

I just purchased a document for you guys and wanted to confirm that it will be send within an hour or 2 to my email or where will document be sent to?

Include the create database command, Submit the SQL Statements necessary to...

Submit the SQL Statements necessary to create your database according to the following guidelines: Your SQL statements should exactly mirror your ERD. All primary keys,

Why is database redesign necessary, Why is database redesign necessary? ...

Why is database redesign necessary? Database redesign is essential for two reasons. First, redesign is essential both to fix mistakes made during the initial database design. S

Find names of employees, Consider the relations EMP(ENO,ENAME,AGE,BASIC_S...

Consider the relations EMP(ENO,ENAME,AGE,BASIC_SALARY) WORK_IN(ENO,DNO) DEPT(DNO,DNAME,CITY) Express the following queries in SQL (i) Find names of employees who work in a dep

Strong entity set and weak entity set, Strong entity set and weak entity se...

Strong entity set and weak entity set? Strong entity set and weak entity set: A strong entity set has a primary key. All tuples in the set are distinguishable through that key.

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