简单的进程回滚问题

时间:2011-01-16 10:37:47

标签: java multithreading process parallel-processing rollback

在修改考试时,我遇到了一个简单的问题,询问流程中的回滚。我理解回滚是如何发生的,但我需要对我的回答进行一些验证。 问题是:

alt text alt text

我的困惑是因为进程之间存在进程间通信。这会改变回滚的位置吗?我的答案是R13,R23,R32和R43。任何帮助是极大的赞赏!谢谢!

2 个答案:

答案 0 :(得分:1)

您需要回滚到可以始终重新启动进程的位置。进程间通信意味着您不能让一个进程在通信之后恢复,而另一个进程在该通信之前恢复。

P3必须回滚到R32。因此,其他流程需要恢复到之后的任何通信之前。

答案 1 :(得分:0)

要遵循一条规则:您无法回滚到某个进程收到尚未发送的消息的位置。如果您遵循这一点,您的全局检查点将一致

此外,您必须决定回滚哪些进程。如果你不需要,不要扔掉工作。您需要回滚的唯一线程是错误的线程。其他人只会为了使检查点保持一致而回滚。

在我看来,(i) - (iv)的一个答案将与其他三个(将是相同的)不同。