弱公平和强公平有什么区别?包含一组变量和一组操作的示例是什么?
发布于 2012-12-08 12:45:39
给出了一个过渡图:
发布于 2011-03-14 20:57:55
我不完全确定,但我相信这是答案:
强与弱
如果每个启用的进程最终都会运行,那么调度程序是非常公平的。
如果每个持久启用的进程最终都将运行,调度程序是弱公平的。
对于共享变量程序来说,弱公平是合理的,但是它不是很有用(不能是局部的) book-keeping)
)。
示例
a!0 k n:=0; go:=true;
do
(go ^ a?x ! go:=false)
2 (go ! n:=n + 1)
od
继续执行第二种选择是不公平的,因为这将继续忽略在两个进程之间进行同步通信的可能性,而这可能在无限多的情况下执行。
一个有效的实现应该尽量公平,并且应该确保一个输出命令不会被不合理地延迟,通常是在它第一次变成可执行之后。
什么是公平?
这样的执行不是强公平的,而是弱fair.
https://stackoverflow.com/questions/5131261
复制相似问题