Formal verification of mutual exclusion algorithms in anonymous memory
Libero Nigro , Franco Cicirelli
Applied Computing and Intelligence ›› 2025, Vol. 5 ›› Issue (2) : 236 -263.
This paper applied a formal method based on timed automata and the Uppaal toolbox to the specification and verification of mutual exclusion algorithms operating on anonymous memory. Anonymous memory is a challenging variation of shared memory where common variables (registers) do not have globally agreed-upon names. Instead, each process has its own view and naming for the shared registers. In addition, the cooperating/competing processes are supposed to be symmetric, that is, they execute the same code, and process identifiers are unknown. A recent proposal of Taubenfeld’s mutual exclusion algorithm with m ≥7 (m odd) shared anonymous registers was chosen as a concrete case study. Such an algorithm was informally studied by the authors together with the establishment of some possibility and impossibility results. This paper's first contribution was to confirm the correctness of the algorithm for N = 2 processes when atomic registers are used. The solution no longer holds for a smaller number of registers, e.g., m = 5, or when non-atomic registers are used. The paper also showed that for N > 2, the algorithm violates the mutual exclusion. To extend the use of the algorithm to N > 2 processes, this paper developed a novel organization where the basic solution for two processes is used as the arbitration unit in a binary, standard state-of-the-art tournament tree. Some timed variations of the model were considered, which permit the study of the algorithm under model checking and/or statistical model checking, for various values of the number N of processes.
concurrency / anonymous shared memory / mutual exclusion / atomic/non-atomic registers / timed automata / Uppaal / model checking / statistical model checking
| [1] |
|
| [2] |
|
| [3] |
|
| [4] |
|
| [5] |
|
| [6] |
|
| [7] |
|
| [8] |
|
| [9] |
|
| [10] |
|
| [11] |
|
| [12] |
|
| [13] |
|
| [14] |
|
| [15] |
|
| [16] |
|
| [17] |
|
| [18] |
|
| [19] |
|
| [20] |
|
| [21] |
|
| [22] |
|
| [23] |
|
| [24] |
|
| [25] |
|
| [26] |
|
| [27] |
|
| [28] |
|
| [29] |
|
| [30] |
Uppsala University, Aalborg University, Uppaal on-line, Uppaal tool, 2025. Available from: https://uppaal.org. |
| [31] |
Uppaal Tutorial, 1999. Available from: https://www.cis.upenn.edu/~lee/09cis480/lec-part-3-uppaal-inside.pdf. |
| [32] |
|
| [33] |
|
| [34] |
|
| [35] |
|
| [36] |
|
| [37] |
|
| [38] |
|
| [39] |
|
| [40] |
|
/
| 〈 |
|
〉 |