CSI 450 - Homework 4 In the dining philosphers, 5 philosophers are sitting around a table. Each has their own bowl of rice, but between each philosopher there is a single chopstick. To eat, a philosopher must have both chopsticks, to her left and right, but another philosopher may already have them (there is only one chopstick between them and that is the only one that the philosopher may use). Philsopher's may not communicate with one another. You must solve the dining philosopher problem without starvation or deadlock. Philosopher's think and eat in a loop for all time. For example you may think of this as the following: while(true) { think(); eat(); } Part 1: - due Thursday 11/19 (although I recommend you complete this by 11/17) As a convention, you may assume that a dining philosopher knows his own identifier "i" and the identifier of his two chopsticks "i" and "j" (we know that j is ( (i+1) % 5 ) and thus not necessarily simply i+1. The 4th philosopher has access to chopstick 4 and chopstick 0 for example. On paper, write the function for eat. You must use a mutex for each chopstick and solve the problems listed above given the restraints listed above. Include proper code for all pieces, although you should write this by hand and not worry so much about if it precisely compiles.