Skip to content

执行历史

Execution history · History

按调用、返回、发送、接收或内部步骤记录系统事件的有限或无限序列。

形式陈述

执行历史是按模型记录的事件序列,可包含操作调用与返回、进程内部步、消息发送与接收。并发对象历史常按每个线程投影保持程序顺序,并区分完整操作、挂起调用和实时先后。分布式系统还可能使用偏序执行而非单一全序;线性序列通常是某个调度下的交错表示。

直觉

历史是系统运行留下的可观察轨迹;性质不是只看最终状态,而是判断整条轨迹是否符合规格。

例子与边界

两个线程同时调用队列 enqueuedequeue,历史记录各调用与返回时间。对挂起操作,线性一致性判断可选择补全或删除,具体按定义。日志时间戳不一定等于因果顺序,机器时钟漂移也不自动给出合法全序。

推论与应用

执行历史用于定义线性一致性、可串行化、安全/活性、故障模型和并发测试。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。
  • Hagit Attiya and Jennifer Welch, Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd ed., Wiley, 2004,Chs. 1–18。