The dining philosopher problem is a classic problem in deadlock management. Theproblem can be described briefly as follows. There is a round table around which atotal of five philosophers are sitting. There are also a total of five plates in front of thephilosophers and five forks, one each beside each plate. A philosopher can only eat ifs/he can get two forks lying beside the plate. The philosophers do not have any meansof communicating with each other to control access to their forks. A situation wherenone of the philosophers is able to eat because they are all able to access a single fork(but not both) is called deadlock. The goal is to design a protocol of choosing theforks among the dining philosophers so that no deadlock occurs.
Assume that the philosophers need to access only a single fork to eat. In ad-dition to the forks, the philosophers also need have access to any one of the
four sauce bowls kept in the center of the table and accessible to all. Is adeadlock possible? If so, write a C program that implements the deadlock-freesolution. The philosophers could be represented by threads. You need to ensurethat your solution is free of deadlocks, i.e. it should be designed such that itavoids/prevents deadlocks.
Already registered? Login
Not Account? Sign up
Enter your email address to reset your password
Back to Login? Click here