Skip to content

定义Definition

可容许执行

施工中 · 内容逐步修订

Admissible execution

满足给定调度、公平性和故障模型约束的执行。

形式陈述 ​

设系统由一组进程与通信介质组成;介质可以是消息信道,也可以是共享对象,行为由所选模型的局部及对象转移规则给出。一个执行是配置与事件交替出现的(有限或无限)序列

C0→e1C1→e2C2→e3⋯,

其中 C0 是初始分布式配置,每个事件 ek 在 Ck−1 中可用,Ck 是执行它的结果;这样的路径是一条分布式执行。可容许执行是在转移规则之外还满足给定环境假设的执行,典型约束包括:

  • 故障上界:至多 f 个进程按指定故障类型(如崩溃故障)失效;
  • 通信可靠性:发送给正确进程的消息最终被交付;
  • 公平性:每个未故障进程被调度无穷多次,或动作满足指定的弱公平、强公平条件;
  • 同步界:若模型为同步或部分同步,进程步伐与消息延迟满足相应上界。

算法性质一律量化于所有可容许执行:断言"算法满足性质 P",意为每个可容许执行都满足 P。其中公平条件必须与进展结论逐项配对:弱公平与强公平约束动作何时最终被选择;solo execution 则筛选某进程最终独占足够长区间的执行。它们是不同的环境条件,不能用一个含糊的“公平调度”相互替代。

直觉

局部转移规则回答某一步能否发生,可容许性回答一条完整执行是否遵守环境承诺。把同一套发送代码放入永久丢包的网络与最终必达的网络,允许的有限发送步骤相同,能够保证的无限期结果却不同。

环境条件与算法结论应分开写。例如“每个正确进程持续获得步骤”是调度承诺,“每个正确进程最终决定”才是算法要证明的结果。若把后一条直接塞进可容许性的定义,共识终止就变成循环论证;若证明中临时假定领导者最终稳定,而规格没有该条件,则是悄悄缩小了被量化的执行集合。

有限前缀通常不能单独判定无限公平性。一个进程等待一百万步后仍可在后续继续运行,消息久未到达也可下一步送达。验证器因此常把活性反例表示成可无限重复的环,并检查这个环是否违反已声明的公平条件,而不是把一次超时直接当作永久饥饿。

例子与边界

取异步消息传递模型,假设"至多一个进程崩溃、发给正确进程的消息最终交付、每个正确进程被调度无穷多次"。此时所有进程都走无穷多步且无消息丢失的执行是可容许的;进程 p 在第 10 步后永久停止的执行同样可容许(把 p 计入故障预算即可);而两个进程都永久停止的执行不可容许,算法无须对它负责。反过来,若删去公平性假设,"调度器从此只运行进程 q"的执行就成为可容许的,一切依赖其他进程推进的活性性质随之失去证明可能。这说明活性结论对公平性极其敏感;安全性则通常对更宽的执行集合成立,因为"坏事不发生"是对每个有限前缀的断言,与调度是否公平无关。

两个常见误用值得单独指出。其一,"异步可靠信道允许任意长但有限的延迟"不同于"延迟存在已知上界":前者是异步模型,后者已经是同步假设,混同二者等于偷换时间模型。其二,FLP 不可能性所构造的永不终止执行完全满足其模型的可容许条件——每个进程走无穷多步、每条消息最终交付、实际可以无故障——因此以"这种调度不现实"为由拒绝它不能反驳定理;想绕开定理,只能显式修改模型,即收紧可容许执行的集合。

进程公平与动作公平也不同。设 P 每轮都可选择 retry,仅在锁空闲时可选 acquire;调度器每轮运行 P,却总在其他线程持锁时运行它。P 取得无穷多步,仍未必获得锁。若 acquire 只是无穷多次短暂使能,弱公平不能排除饥饿,针对该动作的强公平才有相应约束;若它从某刻起一直使能,弱公平已足够。应先确定使能条件,再选择公平性量词。

推论与应用

可容许执行是分布式算法规格的承重结构:故障模型、调度公平性与网络假设全部经由它进入定理陈述。分布式共识、领导者选举与自稳定算法的正确性都写成“在所有可容许执行中满足某性质”的形式,其中安全性与活性分别承担“任何前缀不出错”与“最终有好事发生”两类断言。轨迹语义给出被量化的执行对象,公平性约束从中筛选环境承诺允许的无限轨迹;时序逻辑或模型检查算法再判断性质,不能反过来替规格偷偷补入公平假设。证明 deadlock-free、lock-free 或个体无饥饿时,必须明确进程是否持续取步骤、动作是持续使能还是反复使能,以及故障进程是否仍在量化范围内。

可解性与不可能性的分界同样由可容许集合的大小决定:加入同步界或故障检测器等假设会收紧集合,使更多任务可解;放宽假设则相反。比较两个算法或两条不可能性结果时,第一步永远是核对它们的可容许执行集合是否一致。

参考资料
  • 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。
关系图谱21 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系