Write a program that prevents the deadlock

Assignment Help Computer Engineering
Reference no: EM131938320

Assignment: Operating Systems

Write a Java program to solve the following synchronization & deadlock problem.

Two mountain resorts are connected by a road that becomes single lane inside a tunnel that goes through the mountain. One resort is at the left end of the tunnel and the other at the right end of the tunnel. Cars moving from left to right are called "Right-bound" cars and are indicated with odd numbers starting from 1 (like, 1, 3, 5, ...). "Left-bound" cars move from right to left and are indicated with even numbers starting from 0 (like 0, 2, 4, ..). The tunnel can become deadlocked if a left-bound and a right-bound car enter into the tunnel at the same time.

Task: Write a program that prevents the deadlock. You may use semaphores. You should also take care of the starvation situation in which left-bound cars prevent right-bound cars to enter into the tunnel indefinitely, or vice versa. There will be steady stream of cars from each side, however, there can be more than one car from one side before we see a car from the opposite side. The tunnel may allow more than one car (but not infinite number of cars) passing through it in one direction.

Execution: User is not expected to supply any input. The user will simply compile and run your program. A segment from a sample output could be like the following:
...
Right-bound Car 1 wants to enter the tunnel.
Right-bound Car 1 is in the tunnel.
Right-bound Car 1 is exiting the tunnel.
Left-bound Car 4 wants to enter the tunnel.
Left-bound Car 4 is in the tunnel.
Left-bound Car 4 is exiting the tunnel.
Right-bound Car 5 wants to enter the tunnel.
Right-bound Car 5 is in the tunnel.
Left-bound Car 8 wants to enter the tunnel. // note: Car 8 cannot enter as Car 5 is already in tunnel
Right-bound Car 5 is exiting the tunnel.
Left-bound Car 8 is in the tunnel. // note: now car 8 can go as car 5 has left the tunnel
Right-bound Car 7 wants to enter the tunnel. // note: Car 7 cannot enter as Car 8 is already in tunnel
Left-bound Car 10 wants to enter the tunnel. // note: the tunnel may have allowed 10 to enter Left-bound Car 8 is exiting the tunnel.
Left-bound Car 10 is in the tunnel. // note: this could have been before the previous statement
Left-bound Car 12 wants to enter the tunnel.
...

CAUTION: two cars from opposite sides cannot be in the tunnel at the same time. So, if "Right-bound car x in the tunnel" appears in the output with ‘x' being odd, there must be a "Right-bound car x exiting the tunnel" in the output before a "Left-bound car y in the tunnel" appears in the output with ‘y' being even. Another caution: if ‘car m' and ‘car n' are waiting to enter tunnel from same direction, the car which is first will enter the tunnel first. Also, once a particular car enters and then leaves the tunnel, it does not come back again to enter the tunnel.

[Hint: you may create two threads for controlling left-bound and right-bound cars. You may also use Thread.sleep() with different sleep times for left-bound and right-bound cars when they enter tunnel. You may also use synchronized tunnel controller method and use wait() and notify()/notifyAll() appropriately.]

If two cars are waiting from two directions, JVM may pick up one randomly to allow entering into the tunnel.

Delay should be used appropriately to observe the progress of the output in a run of the program.

Reference no: EM131938320

Questions Cloud

Describe the potential liability to the cpa and the firm : Afer completing an audit of Tablewood Company, the audit firm Smith and Orange, LLP, received a subpoena for all documents related to the audit.
Find the percentage return on the investment : Assume that an investor purchases the stock paying 100% cash. After one year, the investor sells the stock for $65.25 per share (after collecting the dividend).
What is the max speed of the mass : (1) A mass spring system is compressed by a distance L. If let go, (a) What is the max speed of the mass?
Describe the various ways that marcus smith can create : Value-added selling is defined as a series of creative improvements in the sales process that enhance the customer's experience.
Write a program that prevents the deadlock : Write a program that prevents the deadlock. You should also take care of the starvation situation in which left-bound cars prevent right-bound cars.
Construct a mean-variance efficient portfolio : Assume that stock market returns do not resemble a single-index structure. An investment fund analyzes 40 stocks in order to construct a mean-variance.
Discuss yahoos acquisition strategy as prescribed by its ceo : Look for some updated information to share about the success/failure of this strategy since the publication of this article.
Define the highest net profit possible for the speculator : Assume that a speculator purchases a call option on British pounds (with a strike price of $1.50) for $.05 per unit. A pound option represents 31,250 units.
What is the peak voltage induced in loop : A circular loop of a cross sectional area A= 0.10m^2 spins at a constant 30 rpm in a constant magnetic field B= 1.0T. What is the peak voltage induced in this.

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

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