Trace theory is a framework for designing equivalence relations for concurrent program runs based on a commutativity relation over the set of atomic steps taken by individual program threads. It is simple and elegant, and it yields efficient algorithms that are broadly useful in many different contexts. In this paper, we study relaxations of trace equivalence with the goal of maintaining its algorithmic advantages. We first prove that the largest appropriate relaxation of trace equivalence, an equivalence relation that preserves the order of steps taken by each thread and what write operation each read operation observes, does not yield efficient algorithms. Specifically, we prove a linear space lower bound for the problem of checking if two arbitrary steps of a concurrent program run are causally concurrent (i.e. they can be reordered in an equivalent run) or causally ordered. The same problem can be decided in constant space for trace equivalence. Second, we propose a new commutativity-based notion of equivalence that is strictly more relaxed than trace equivalence, and yet yields a constant space algorithm for the same problem. This notion of equivalence uses commutativity of certain blocks of atomic steps in addition to the standard commutativity from trace theory. We define a new partial order and prove that it faithfully represents the new equivalence classes. The definition of the partial order relies on a novel technical contribution: a new notion of atomicity, called liberal atomicity that is more relaxed than the well-known conflict-serializability. We demonstrate that liberal atomicity can be checked as efficiently as conflict-serializability, i.e. in constant space, and use this efficient monitor as part of our constant-space algorithm for deciding the status of causal concurrency of two steps in a concurrent program run.
翻译:跟踪理论是设计同时程序运行的等等关系的框架, 其基础是单个程序线索对一组原子步骤的共通性关系。 它简单而优雅, 产生高效的算法, 在许多不同的背景下大有用处。 在本文中, 我们研究减低追踪等同, 以保持其算法优势为目标。 我们首先证明, 最大适度的追踪等同, 一种保持每条线索所采取步骤顺序的等同关系, 以及每个阅读操作所观察到的写操作, 并不产生有效的算法。 具体地说, 我们证明, 线性空间对于检查一个同时程序运行的两条任意步骤是否因果同时( 也就是说, 它们可以在等量运行中重新排序) 或因果排序。 同样的问题可以在固定空间等量空间等量概念中决定。 我们提出一个新的基于通量的等量概念, 也就是在精确的原子等量结构中, 以新的等量排序 。 我们用某些原子步骤的共通度比标准的共通度状态的两条步骤 。 我们从追踪理论中确定一个固定的通性 。 以新的 亚等值规则 以显示一个新的的通性 。 以显示一个新的的正序 。 以显示一个新的的正序 。 。 以显示一个新的的正序 。 以新的 以新的 以新的 以显示新的 亚序 以 以 以 亚序 。 以 亚 以 以 。