|
发表于 2004-10-27 11:01:01
|
显示全部楼层
1、但是我还是不是很理解你说的The sequence number of message m3 was less than that of message m2这句话表明m3后到达,如果m3后到达,m3的sequence number应该more than m2,而不是less than m2 ?
----首先从题目的最后一句“the fact that, as the message log shows, m3 was received after m2”可以知道在C的日志里按时间纪录的次序是m3在m2之后。所以事实上m3确实在m2之后。但是m3的序列号比m2小。序列号的大小并不是由C接受到消息的次序决定的。而是由发送者决定的。如果是由接受者决定序列号,那我们就不需要序列号了。
2、如果m3后到达C,是什么原因会使m3的sequence number比m2的sequence number小呢? 由于网络延时或别的因素么?
A和B都有正确的时钟,B是连着sensor的,下假设病人在 t 时刻恢复,B从感应器知道了然后发出消息,如果他的处理时间是2,m2的序列号是t+2, 题目中说这种错误发生的条件是病人一恢复立刻又危险了,病人在t时刻恢复,在t+1时刻又不行了,A发的m3序列号是t+1. 所以m3<m2.
3、你说的解决方法,是不是因为A AND B correctly implemented a system of logical clocks,所以他俩产生sequence number的顺序是根据他们系统的clocks走的? 比如,A and B 系统是相同的时间,但是由于在B发生的事情要晚于在A发生的事情,所以在这两个事情到达C的时候,C接收到的sequence number B大于A? (C接收到的sequence number 是不是由A and B计算机发出来的?)
其实有个解决办法就是B不管有没有成功的恢复病人都给C发消息“alarm off”或者“alarm continue”。然后C的策略要改变一下。比如每个"attention needed"消息必须有相应的“alarm off”,如果没有就派医生。
我是这样想的,仅供参考。呵呵 |
|