%0 Conference Paper %A Tran Dinh, Duong %A Waki, Kentaro %A Ogata, Kazuhiro %B International Conference on Software Engineering and Knowledge Engineering %C Wyndham Pittsburgh University Center, Pittsburgh, USA %F SisLab:4566 %T Formal specification and model checking of a recoverable wait-free version of MCS %U https://eprints.uet.vnu.edu.vn/eprints/id/eprint/4566/ %X MCS is widely known as one of the most efficient and influential spinning lock mutual exclusion protocols. The protocol, however, only works under the assumption that processes do not crash while acquiring/releasing the lock or being in the critical section. Furthermore, the exit segment pseudo-code of MCS’s algorithm is not wait-free since a process releasing the lock needs to wait for the next process in the virtual queue to perform some steps. A new version of MCS has been proposed by S. Dhoked and N. Mittal such that the new version is wait-free and recoverable (i.e., if some processes crash, the protocol can recover and work normally). In this paper, we formally specify the recoverable wait-free version of MCS and conduct model checking to check whether the protocol enjoys the mutual exclusion property. Our experiments say that: (1) the property is not satisfied if crashes are allowed to occur without any restriction, (2) the protocol enjoys the property if crashes never happen at all, or (3) if crashes have not occurred recently. We also describe the challenge of how to formally specify dynamic memory allocation and present our solution to solve that problem.