--%>

Networking, Distributed and Concurrent Programming

Homework Assignment : A Barbershop Problem Due: November 20, 2012 In this assignment, you are asked to write a multithreading problem to simulate the barbershop problem, which is a classical synchronization problem. The problem is taken from William Stallings's Operating Systems: Internals and Design Principles, 3rd Edition, 1998. Barber problem: Orchestrating activities in a barbershop 1. 3 chairs, 3 barbers, 1 cash register, waiting area includes 4 customers on a sofa, plus additional standing room for 7 customers. 2. A customer : • Will not enter the shop if it is filled to capacity • Takes a seat on the sofa, or stands if sofa is filled • When a barber is free, the customer waiting longest on sofa is served, the customer standing longest takes up seat on the sofa • When a customer's haircut is finished, any barber can accepted payment but because of the single cash register, only one payment is accepted at a time • Barbers divide their time between cutting hair, accepting payment and sleeping Assume the arrival rate of customers is 1 customer/3 minutes, the haircut speed of three barbers are the same 5 minutes. Initially, all three barbers are sleeping, and there is no guest in the barbershop. The output of your program is the snapshot of the barbershop at a given time (an input parameter of the program), including how many customers in the barbershop, how many are seated, how many are on the barber chairs, current status of three barbers, current status of cashier, and how many customers are dropped. Hints: • You can start from the code included in the slides, and try to solve the remaining problems (slides) step by step. • The interval of your simulation step should not larger than 1 minute. Extra credits: You can get 0.5 extra credit if you can handle the poisson arrival of customers. You can get 0.5 extra if you can handle varied hair cutting speed.

   Related Questions in Programming Languages

  • Q : Define Comment Comment : It is a piece

    Comment: It is a piece of text proposed for the human reader of a program. The compilers disregard their contents.

  • Q : Explain Fully qualified class name

    Fully qualified class name: The name of a class, comprising any package name and including class name. The class outline is as follows:     package oddments;    class Outer

  • Q : What is Class body Class body : It is a

    Class body: It is a body of class definition. The body collects the definitions of a class's members that is, methods, fields and nested classes.

  • Q : Explain Return type Return type : It is

    Return type: It is the declared type of a method, appearing instantly before the method name, like void in     public static void main(String[] args)    or Point[] in 

  • Q : Define the reasons of Process Handle

    Define the reasons of Process Handle Table.

  • Q : Write a program to print out ten random

    Write a program to print out ten random numbers from the following sets: a) {0, 1, 2, 3, 4, 5, ...99, 100} b) {1, 2, 3, 4, 5, 6} c) (10, 20, 30, 40, 50,...990, 1000} d) {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5} e) {1.5, 2.0, 2.5, 3.0, 3.5}  

  • Q : Explain Twos-complement notation

    Twos-complement notation: In twos-complement notation, the most noteworthy bit in an integer value is employed as the sign bit. A 1 bit points out a negative number, and a 0 bit points out a positive number. The positive number can be transformed to i

  • Q : What is Class Selector in the CSS

    Explain what is meant by the Class Selector in the CSS?

  • Q : Program to controls a quiz show in C++

    Foundations of Computer Science In this project, we will write a program that controls a quiz show, much like the many popular TV shows. The program will read in a group of questions and thei

  • Q : Benefits of the event-delegation model

    Write down some of the benefits of the event-delegation model over event-inheritance model?