【发布时间】:2011-01-16 10:37:47
【问题描述】:
在复习考试时,我遇到了一个关于流程回滚的简单问题。我了解回滚是如何发生的,但我需要对我的答案进行一些验证。 问题:
我的困惑是由于进程之间存在进程间通信这一事实。这会改变回滚的位置吗?我的答案是 R13、R23、R32 和 R43。任何帮助是极大的赞赏!谢谢!
【问题讨论】:
标签: java multithreading process parallel-processing rollback
在复习考试时,我遇到了一个关于流程回滚的简单问题。我了解回滚是如何发生的,但我需要对我的答案进行一些验证。 问题:
我的困惑是由于进程之间存在进程间通信这一事实。这会改变回滚的位置吗?我的答案是 R13、R23、R32 和 R43。任何帮助是极大的赞赏!谢谢!
【问题讨论】:
标签: java multithreading process parallel-processing rollback
您需要回滚到可以持续重新启动进程的点。进程间通信意味着您不能让一个进程在通信之后恢复到通信之前。
P3 必须回滚到 R32。因此,其他进程需要恢复到之后的任何通信之前。
【讨论】:
要遵循一条规则:您不能回滚到某个进程已收到尚未发送的消息的点。如果您遵循这一点,您的全局检查点将是一致的。
此外,您必须决定回滚哪些进程。如果没有必要,不要丢掉工作。您需要回滚的唯一线程是有故障的线程。其他人只会回滚以使检查点保持一致。
在我看来,(i)-(iv) 的一个答案将与其他三个不同(它们将是相同的)。
【讨论】: