Menu

[Solved]-Two Mountain Resorts Connected Road Becomes Single Lane Inside Tunnel Goes Mountain One Re Q37286866

Two mountain resorts are connected by a road that becomes singlelane inside a tunnel that goes through the mountain. One resort isat the left end of the tunnel and the other at the right end of thetunnel. Cars moving from left to right are called “Right-bound”cars and are indicated with odd numbers starting from 1 (1, 3, 5,…). “Left-bound” cars move from right to left and are indicatedwith even numbers starting from 0 (0, 2, 4, ..). The tunnel canbecome deadlocked if a leftbound and a right-bound car enter intothe tunnel at the same time. Task: Write a program that preventsthe deadlock. You may use any synchronization technique. Forexample, semaphores would be good choice. You may ignorestarvation, that is, the situation in which left-bound cars preventrightbound cars to enter into the tunnel, or vice versa. You canassume that there will be steady stream of cars from each side,however, there can be more than one car from one side before we seea car from the opposite side. The tunnel may allow more than onecar passing through it, but only in one direction.

User is not expected to supply any input. The user will simplycompile and run your program. A segment from a sample output couldbe like the following: … Right-bound Car 1 wants to enter thetunnel. Right-bound Car 1 is in the tunnel. Right-bound Car 1 isexiting 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 thetunnel. Right-bound Car 5 wants to enter the tunnel. Right-boundCar 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 tunnelRight-bound Car 5 is exiting the tunnel. Left-bound Car 8 is in thetunnel. // note: now car 8 can go as car 5 has left the tunnelRight-bound Car 7 wants to enter the tunnel. // note: Car 7 cannotenter as Car 8 is already in tunnel Left-bound Car 10 wants toenter the tunnel. // note: the tunnel may have allowed 10 to enterLeft-bound Car 8 is exiting the tunnel. Left-bound Car 10 is in thetunnel. // note: this could have been before the previous statementLeft-bound Car 12 wants to enter the tunnel

CAUTION: two cars from opposite sides cannot be in the tunnel atthe same time. So if “Right-bound car x in the tunnel” appears inthe output with ‘x’ being odd, there must be a “Right-bound car xexiting the tunnel” in the output before a “Left-bound car y in thetunnel” appears in the output with ‘y’ being even. Another caution:if ‘car m’ and ‘car n’ are waiting to enter tunnel from samedirection, the car which is first will enter the tunnel first.Also, once a particular car enters and then leaves the tunnel, itdoes not come back again to enter the tunnel. [Hint: you may createtwo threads for controlling left-bound and right-bound cars. Youmay also use Thread.sleep() with different sleep times forleft-bound and right-bound cars when they enter tunnel. This wouldallow simulating different time taken to pass the tunnel. You mayalso use synchronized controller method and use wait() andnotify()/notifyAll() appropriately. ]

Expert Answer


Answer to Two mountain resorts are connected by a road that becomes single lane inside a tunnel that goes through the mountain. On… . . .

OR


Leave a Reply

Your email address will not be published. Required fields are marked *