Reference no: EM131268
Consider a small take-out food restaurant called Burrito Brothers. This very popular establishment offers a VERY-TASTY burrito. There are three servers that own a private beef area, a cheese area, and a tortilla area (IE. Each server has their own ingredients in an infinite supply). Additionally there are three shared counter locations, a shared cash register and a shared waiting area that can accommodate up to 15 customers. By law the shop has a maximum customer capacity of 15.
A customer cannot enter the shop if it is filled to capacity. If the there is room a customer will gain access to the shop. Each customer will enter the shop with an order of one to 20 burritos. As soon as a server is free, the customer that has the shortest order is served next A server is either servicing a customer or waiting. Each server will make (at most) three 'burritos at time for a given customer. Once a server has obtained all ingredients, a burrito can be made. When a customer's entire order is finished, the customer pays a cashier and leaves the shop. Since there is only one cash register, only one patron may pay at a time. However, in the event that a customer's entire order has not been filled by the server at the completion of the current counter visit the customer must reenter the waiting area. The waiting area is organized by the shortest order next. Implement a solution to this problem as a Java application using the Java semaphore class for synchronization.
Each customer is represented by a corresponding thread and each server in your implementation is also represented by a unique Java thread. All customers and servers exist within a single application.
A detailed design document fully describing work. This must be a clear and concise document that rigorously addresses the decisions and design elements that support your solution to this concurrency and synchronization problem. See the Methodology, Design, and design elements. Use citation to provide evidence of your analysis. Citations and references should be in APA format.
- The Java Burrito Brothers Implementation
- The Java Source Code
- Class files
- The system must compile using the command: javac *.java. The system must run using the command: java Burrito <optional parameters>.
- Output from a run of your application.