We design two Recoverable Mutual Exclusion (RME) locks for the system-wide crash model. Our first algorithm requires only $O(1)$ space per process, and achieves $O(1)$ worst-case RMR complexity in the CC model. Our second algorithm enhances the first algorithm to achieve (the same) $O(1)$ space per process and $O(1)$ worst-case RMR complexity in both the CC and DSM models. Furthermore, both algorithms allow dynamically created threads of arbitrary names to join the protocol and access the locks. To our knowledge, these are the only RME locks to achieve worst-case $O(1)$ RMR complexity assuming nothing more than standard hardware support. In light of Chan and Woelfel's $\Omega(\log n / \log\log n)$ worst-case RMR lower bound for RME in the individual crash model, our results show a separation between the system-wide crash and individual crash models in worst-case RMR complexity in both the CC and DSM models.
翻译:我们针对全系统崩溃模型设计了两种可恢复互斥锁(RME)。第一种算法每个进程仅需$O(1)$空间,并在CC模型下达到$O(1)$最坏情况RMR复杂度。第二种算法在第一种算法基础上改进,在CC和DSM两种模型下均实现(相同的)每个进程$O(1)$空间与$O(1)$最坏情况RMR复杂度。此外,两种算法均允许动态创建任意名称的线程加入协议并访问锁。据我们所知,这是仅凭标准硬件支持即可达到最坏情况$O(1)$ RMR复杂度的唯一RME锁。结合Chan与Woelfel在个体崩溃模型下提出的RME最坏情况$\Omega(\log n / \log\log n)$ RMR下界,我们的结果表明:在CC和DSM两种模型中,全系统崩溃模型与个体崩溃模型在最坏情况RMR复杂度上存在分离现象。