Priority mutual exclusion: Specification and algorithm
Paper in proceedings, 2016
Mutual exclusion is a fundamental problem in distributed computing. In one well known variant of this problem, which we call priority mutual exclusion, processes have priorities and the requirement is that, whenever the critical section becomes vacant, the next occupant should be the process that has the highest priority among the waiting processes. Instead of first capturing this vague, but intuitively appealing requirement by a rigorously specified condition, earlier research rushed into proposing algorithms. Consequently, as we explain in the paper, none of the existing algorithms meet the reasonable expectations we would have of an algorithm that claims to respect process priorities. This paper fixes this situation by rigorously specifying the priority mutual exclusion problem and designing an efficient algorithm for it. Our algorithm supports an arbitrary number of processes and, when configured to support m priority levels (m can be any natural number), the algorithm has O(m) RMR complexity on both DSM and CC machines.
Distributed computer systems