lab7
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
lab7 [2016/02/24 14:05] – created franck | lab7 [2019/03/14 01:13] (current) – franck | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Consider | + | ====== Lab 7 ====== |
- | < | + | |
- | <pre> | + | You are asked to implement a solution to the sleeping barber problem in Java. Some Java code has already been developed (see below). |
- | public class ComputeSquareRoot { | + | |
- | | + | The barber has one barber' |
- | double data = 3.1415926; | + | |
- | System.out.println(" | + | Each customer, when they arrive, looks to see what the barber is doing. |
- | } | + | |
- | } | + | The waiting room is represented by the class WaitingRoom and the barber and the customers are represented by Barber and Customer threads. |
- | </pre> | + | |
- | </html> | + | Since randomization is used in some of the classes, different runs of the app may produce different outputs. |
+ | < | ||
+ | Barber sleeps | ||
+ | Customer 4 enters | ||
+ | Customer 4 sits down | ||
+ | Barber wakes up | ||
+ | Customer 4 gets a haircut | ||
+ | Customer 4 leaves | ||
+ | Customer 3 enters | ||
+ | Customer 3 sits down | ||
+ | Customer 1 enters | ||
+ | Customer 1 sits down | ||
+ | Customer 3 gets a haircut | ||
+ | Customer 3 leaves | ||
+ | Customer 0 enters | ||
+ | Customer 0 sits down | ||
+ | Customer 2 enters | ||
+ | Customer 2 sits down | ||
+ | Customer 1 gets a haircut | ||
+ | Customer 1 leaves | ||
+ | Customer 0 gets a haircut | ||
+ | Customer 0 leaves | ||
+ | Customer 2 gets a haircut | ||
+ | Customer 2 leaves | ||
+ | Barber | ||
+ | </ | ||
+ | In the above run, there are never more than three customers in the waiting room and therefore all customers get a haircut. | ||
+ | < | ||
+ | Barber sleeps | ||
+ | Customer 1 enters | ||
+ | Customer 1 sits down | ||
+ | Barber wakes up | ||
+ | Customer 2 enters | ||
+ | Customer 2 sits down | ||
+ | Customer 3 enters | ||
+ | Customer 3 sits down | ||
+ | Customer 4 enters | ||
+ | Customer 4 leaves because no chair is free | ||
+ | Customer 0 enters | ||
+ | Customer 0 leaves because no chair is free | ||
+ | Customer 1 gets a haircut | ||
+ | Customer 1 leaves | ||
+ | Customer 2 gets a haircut | ||
+ | Customer 2 leaves | ||
+ | Customer 3 gets a haircut | ||
+ | Customer 3 leaves | ||
+ | Barber is done for the day | ||
+ | </code> | ||
+ | In the above run, customers 4 and 0 leave before getting a haircut since all chairs in the waiting room are occupied. | ||
+ | |||
+ | To receive feedback, submit your code **before** March 23 using the submit command: | ||
+ | < | ||
+ | submit 4315 lab7 <name of class> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
- | - Develop a model class so that the above app can be verified with JPF. [[https:// | ||
- | - Develop a native peer so that the above app can be verified with JPF. | ||
lab7.1456322711.txt.gz · Last modified: 2016/02/24 14:05 by franck