A Modification to the Chandy-Misra Dining Philosophers Algorithm to Support Dynamic Resource Conflict Graphs

The Chandy-Misra dining philosophers algorithm is based on a static undirected resource conflict graph H in which each vertex represents a process and each edge represents potential resource conflict. The algorithm creates a distributed priority graph by implicitly assigning a direction to each edge in the static graph based on priority of the incident processes for using a resource. The priorities change over time to prevent starvation and the algorithm maintains acyclicity of the priority graph to prevent deadlock. In this paper, we present some simple modifications to the algorithm that allow the potential resource conflict graph H to vary over time, with the addition and deletion of both processes (vertices) and potential conflicts (edges) dynamically. Our algorithm guarantees that no waiting process will be bypassed more than once by any other process in the system.