当前位置: X-MOL 学术arXiv.cs.OS › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An Adaptive Approach to Recoverable Mutual Exlcusion
arXiv - CS - Operating Systems Pub Date : 2020-06-12 , DOI: arxiv-2006.07086
Sahil Dhoked and Neeraj Mittal

Mutual exclusion (ME) is one of the most commonly used techniques to handle conflicts in concurrent systems. Traditionally, mutual exclusion algorithms have been designed under the assumption that a process does not fail while acquiring/releasing a lock or while executing its critical section. However, failures do occur in real life, potentially leaving the lock in an inconsistent state. This gives rise to the problem of \emph{recoverable mutual exclusion (RME)} that involves designing a mutual exclusion algorithm that can tolerate failures, while maintaining safety and liveness properties. One of the important measures of performance of any ME algorithm, including an RME algorithm, is the number of \emph{remote memory references (RMRs)} made by a process (for acquiring and releasing a lock as well as recovering the lock structure after a failure). The best known RME algorithm solves the problem for $n$ processes in sub-logarithmic number of RMRs, given by $\mathcal{O}(\frac{\log n}{\log \log n})$, irrespective of the number of failures in the system. In this work, we present a new algorithm for solving the RME problem whose RMR complexity gradually \emph{adapts} to the number of failures that have occurred in the system "recently". In the absence of failures, our algorithm generates only $\mathcal{O}(1)$ RMRs. Furthermore, its RMR complexity is given by $\mathcal{O}(\min\{ \sqrt{F}, \frac{\log n}{\log \log n} \})$ where $F$ is the total number of failures in the "recent" past. In addition to read and write instructions, our algorithm uses compare-and-swap (\CAS{}) and fetch-and-store (\FAS{}) hardware instructions, both of which are commonly available in most modern processors.

中文翻译:

可恢复互斥的自适应方法

互斥 (ME) 是处理并发系统中冲突的最常用技术之一。传统上,互斥算法是在假设进程在获取/释放锁或执行其临界区时不会失败的假设下设计的。但是,在现实生活中确实会发生故障,这可能会使锁处于不一致的状态。这引起了\emph{可恢复互斥(RME)}的问题,该问题涉及设计一种可以容忍故障的互斥算法,同时保持安全性和活性属性。任何 ME 算法(包括 RME 算法)性能的重要度量之一,是进程产生的 \emph{远程内存引用 (RMR)} 的数量(用于获取和释放锁以及在失败后恢复锁结构)。最著名的 RME 算法以 RMR 的亚对数数解决 $n$ 进程的问题,由 $\mathcal{O}(\frac{\log n}{\log \log n})$ 给出,与系统中的故障次数。在这项工作中,我们提出了一种解决 RME 问题的新算法,其 RMR 复杂度逐渐\emph {适应} 系统“最近”发生的故障数量。在没有失败的情况下,我们的算法仅生成 $\mathcal{O}(1)$ RMR。此外,它的 RMR 复杂度由 $\mathcal{O}(\min\{ \sqrt{F}, \frac{\log n}{\log \log n} \})$ 给出,其中 $F$ 是总“最近”过去的失败次数。
更新日期:2020-08-04
down
wechat
bug