【发布时间】:2011-10-17 15:51:44
【问题描述】:
我在一篇论文中读到了这个......
因此,我们的工具只在线程执行时检查点 在已知的安全点:内核入口、内核出口或某些 在我们确定是安全的内核中的可中断睡眠。 启动多线程分叉的线程在 它一直等到所有其他线程都达到安全点。一旦所有 线程到达屏障,原始线程创建检查点, 然后让其他线程继续执行。
现在我的问题是,谁能猜出作者在谈论什么样的障碍。线程如何创建屏障并将屏障也动态插入其他线程?任何工作示例都将受到高度赞赏。
已编辑
请不要说使用pthread_barrier_wait,因为这不是问题所在。显然,作者有一个线程可以动态地将障碍插入其他线程。我想知道怎么做?
【问题讨论】:
-
为什么不问作者,而不是猜测?
-
“显然 ... 线程动态地将屏障插入其他线程”。该段没有说这个,你是在推断它。问作者。奇怪的是他们确实使用了简单的
pthread_barrier_wait。奥卡姆剃刀适用于此。 -
这肯定是检查点/重启的内核空间实现吗?论文是免费提供的吗?也许实现已经挂钩到那些“安全点”,当有一个检查点正在进行时,就会跳障碍舞。
-
您能否提供有关您引用的论文的更多信息,以便我们了解更多背景信息?这样我们就不必猜测了。一个链接将是理想的。
-
是的迈克尔,论文的链接是这个... www.eecs.umich.edu/~nsatish/papers/ASPLOS-10-Respec.pdf