Question: Problem: Write a concurrent C++ program that solves the Barbershop Problem from The Little Book of Semaphores (LBS). The description for the problem can be

Problem: Write a concurrent C++ program that solves the Barbershop Problem from The Little Book of Semaphores (LBS). The description for the problem can be found on page 127.

'

'

A barbershop consists of a waiting room with n chairs, and the barber room containing the barber chair. If there are no customers to be served, the barber goes to sleep. If a customer enters the barbershop and all chairs are occupied, then the customer leaves the shop. If the barber is busy, but chairs are available, then the customer sits in one of the free chairs. If the barber is asleep, the customer wakes up the barber. Write a program to coordinate the barber and the customers.

To make the problem a little more concrete, I added the following informa- tion:

Customer threads should invoke a function named getHairCut.

If a customer thread arrives when the shop is full, it can invoke balk,

which does not return.

The barber thread should invoke cutHair.

When the barber invokes cutHair there should be exactly one thread invoking getHairCut concurrently.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!