A tech support queue consists of n number of positions and the current position that the tech support individual is working with. If there are no customers that need assistance, the tech support person will go on break for x number of seconds (representing minutes). Also if a customer enters the support queue but the queue already has n number of individuals, then the customer is rejected (with a counter). The tech support person will help the person for y number of seconds (representing minutes). The customers should come in at a steady rate by z number of seconds. There should be a max of customers that may come in as w.
x: break for number of seconds
y: time it takes to resolve one individual
z: rate that the customers should be added
w: maximum number of customers allowed to attempt to enter the queue
2. If the rate of y is less than z, then the queue may never get full. The program will simulate process synchronization. You will want to make sure that you output a message during each of these transactions:
Tech support goes on break
Tech support comes back from break
Customer attempts to enter queue
Customer enters queue at position (#)
Customer is rejected due to queue being full
Tech support is currently serving customer (#)
Tech support is finished serving customer (#)
Last customer is finished being served
3. Output the number of served customers and the number of rejected customers with the total length of time it took to serve the customers. Develop a thorough testing example with different values for the inputs.
This solution provides various programs written in Java.