【发布时间】:2021-09-15 15:35:40
【问题描述】:
保护命令循环结构
do
Condition ⇒ Command
...
Condition ⇒ Command
od
涉及非确定性选择,如正文中所述。一个与潜在非终止非确定性计算相关的重要理论概念 是公平。如果一个循环无限地重复,那么一个公平的非确定性选择必须 最终选择所有守卫为真的命令。比如在循环中
do
true ⇒ x := x+1
true ⇒ x := x-1
od
这两个命令都有始终为真的守卫。重复执行x := x+1 而不执行x := x-1 是不公平的。
大多数语言实现是
旨在提供公平性,通常通过提供有界形式。例如,
如果有 n 受保护的命令,那么实现可以保证
每个启用的命令将在每2n 或3n 次中至少执行一次
通过循环。
因为数字 2n 或 3n 取决于实现,
不过,程序员应该只假设每个带有true 保护的命令
最终会被执行。
在单处理器语言实现上更容易提供公平性吗 还是在多处理器上?
【问题讨论】:
-
我们要求您为所有复制材料的原始来源提供正确的归属:stackoverflow.com/help/referencing
标签: computer-science cpu-architecture processor multiprocessor fairness-indicators