/* Note the following output follows the format of what is required. i realize that there are many ways to printout the info, but to make grading easier, i want you to follow the format as closely as you can. Lines (line numbers are for reference only) 1-6 are what is normally printed out while lines 7-10 are the additional lines required from parameter 2 */ Barbarshop program as a producer/consumer using a circular buffer, semaphores and shared memory. Three arguments control the program: 1. How long in Seconds Consumer process should sleep before starting - default = 1 second. 2. Used to determine if Barber Shop contents are to be printed: default =0, not print. 3. How long Producer should sleep between each search of the wait area - default = 3. NOTE: Person in the chair with the lowest number is the Next Person of that category to have their hair cut. NOTE: How position numbers change as someone's hair is cut, i.e., in X, the next NC is 18, in X+1, the next NC is 17 (guy in 18 moved to the barber chair. . . . 1 Lieutenant's Watch #X 2 EntO WaitO CutO EntNC WaitNC CutNC 3 5 0 5 10 7 2 4 5 EntG WaitG CutG EmptyC OccupC BChair 6 18 11 7 2 18 NC 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8 O 9 NC 7 6 5 4 3 2 1 10 G 1 4 2 3 7 9 5 6 8 10 11 1 Lieutenant's Watch #X+1.... 2 EntO WaitO CutO EntNC WaitNC CutNC 3 5 0 5 10 6 3 4 5 EntG WaitG CutG EmptyC OccupC BChair 6 18 11 7 3 17 NC 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8 O 9 NC 6 5 4 3 2 1 10 G 1 4 2 3 7 9 5 6 8 10 11