In ds8, you will solve a dining philosopher problem. Basically, A fork is placed between each pair of adjacent philosophers. Each philosopher must alternately think and eat. However, a philosopher can only eat when he has both his left and right forks.
In this miniMP, we are going to solve the problem with the following approach; A philosopher can only eat whenever both forks are available. There are three functions that you need to implement pickup and putdown.
To help you with this miniMP, there are a couple of structures that are provided. The first is the global_state variable in dphil.h which describes the number of philosophers, the state of each philosophers and also provide you with the necessary synchronization variables. You may also find the variable id in phil_t to be useful too.
To compile and run your shell, run the following commands from a Terminal on a Linux machine:
$ make
$ ./dphil num_philosopher