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

System Analysis and design, Using the questions found at the end of Chapter...

Using the questions found at the end of Chapter 9 in your textbook, complete this homework activity. Students will submit a Word document answering questions 2, 3, and 4.

Properties of a transaction , Properties of a Transaction        A tra...

Properties of a Transaction        A transaction has four main properties. These are: Atomicity Consistency Isolation or Independence Durability or Permanen

Advanced database systems, Consider an information system designed for an o...

Consider an information system designed for an online company which provides IT products and services These include desktops, laptops, networking products, IT books, parts, and

Mention the purpose of sid and sod lines, Mention the purpose of SID and SO...

Mention the purpose of SID and SOD lines SID (Serial input data line): It is an input line by which the microprocessor accepts serial data. SOD (Serial output data line)

Disadvantages or unsecure, In Database software have only pure security or ...

In Database software have only pure security or some dis secured by administrator?

Construct substantial data model, PART MARKING:  We will only mark TWO of t...

PART MARKING:  We will only mark TWO of the four questions below but you must submit answers to all four. We will choose the questions we mark randomly and we will supply you with

relationship with the owner entity, A database for the Service and Mainten...

A database for the Service and Maintenance (SM) section of a Computer sales and service Company has to be developed. SM gives after sales service to customers. SM branch has a numb

Mappings between levels and data independence, Mappings between Levels and ...

Mappings between Levels and Data Independence The 3 levels of abstraction in the database do not exist separately of each other. There must be some correspondence, or mapping

Define shadow paging, Define shadow paging. An alternative to log-based...

Define shadow paging. An alternative to log-based crash recovery method is shadow paging. This technique requires fewer disk accesses than do the log-based methods.

Types of indexes, Types Of Indexes One of the words used during the fil...

Types Of Indexes One of the words used during the file organisation is the term index. In this part, let us describe this term in more detail. We find the index of keywords

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