...
首页> 外文期刊>Journal of the Association for Computing Machinery >Are Lock-Free Concurrent Algorithms Practically Wait-Free?
【24h】

Are Lock-Free Concurrent Algorithms Practically Wait-Free?

机译:无锁并发算法实际上是免等待的吗?

获取原文
获取原文并翻译 | 示例

摘要

Lock-free concurrent algorithms guarantee that some concurrent operation will always make progress in a finite number of steps. Yet programmers prefer to treat concurrent code as if it were wait-free, guaranteeing that all operations always make progress. Unfortunately, designing wait-free algorithms is generally a very complex task, and the resulting algorithms are not always efficient. Although obtaining efficient wait-free algorithms has been a long-time goal for the theory community, most nonblocking commercial code is only lock-free. This article suggests a simple solution to this problem. We show that for a large class of lock-free algorithms, under scheduling conditions that approximate those found in commercial hardware architectures, lock-free algorithms behave as if they are wait-free. In other words, programmers can continue to design simple lock-free algorithms instead of complex wait-free ones, and in practice, they will get wait-free progress. Our main contribution is a new way of analyzing a general class of lock-free algorithms under a stochastic scheduler. Our analysis relates the individual performance of processes to the global performance of the system using Markov chain lifting between a complex per-process chain and a simpler system progress chain. We show that lock-free algorithms are not only wait-free with probability 1 but that in fact a general subset of lock-free algorithms can be closely bounded in terms of the average number of steps required until an operation completes. To the best of our knowledge, this is the first attempt to analyze progress conditions, typically stated in relation to a worst-case adversary, in a stochastic model capturing their expected asymptotic behavior.
机译:无锁并发算法可确保某些并发操作将始终以有限的步骤进行。然而,程序员更喜欢将并发代码视为无需等待,以确保所有操作始终在进步。不幸的是,设计免等待算法通常是一项非常复杂的任务,并且生成的算法并不总是有效的。尽管获得高效的免等待算法一直是理论界的长期目标,但大多数无阻塞商业代码都是无锁的。本文提出了解决此问题的简单方法。我们表明,对于一大类无锁算法,在近似于商业硬件体系结构中发现的调度条件下,无锁算法的行为就好像它们是无等待的一样。换句话说,程序员可以继续设计简单的免锁算法,而不是复杂的免等待算法,并且在实践中,他们将获得免等待的进展。我们的主要贡献是一种在随机调度程序下分析通用类无锁算法的新方法。我们的分析将过程的单个性能与系统的全局性能相关联,这是通过在复杂的每个过程链与更简单的系统进度链之间进行马尔可夫链提升来实现的。我们表明,无锁算法不仅以概率1处于无等待状态,而且实际上,无锁算法的一般子集可以根据直到操作完成所需的平均步骤数来严格限制。就我们所知,这是首次尝试在捕获其预期渐近行为的随机模型中分析进度条件(通常针对最坏情况的对手)。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号