我想实现基于磁盘的Peterson算法,以便在可以访问同一存储的两个独立服务器上运行的进程之间互斥。
我想找到
的意见有几个问题1)我是否可以安全地将单字节写入磁盘而不影响其他字节?
我担心当写入磁盘,扇区或块(例如4k)时,可以真正写下来,这样就会覆盖其他进程设置(参见下一个可能实际受益的点,如果情况确实如此。)
我应该将这些字节彼此相邻写入,还是应该在块的开头写下每个字节,我知道存储会一次写入?
2)如何检测关键部分中服务器的崩溃?
使用预期超时'是否有意义?而不是真实的'在国旗的地方?当然这样我会使用' long'而不是'字节'存放一面旗帜。我假设两台服务器都有同步时间。 P0过程将存储而不是' true'在P0无法完成的情况下,P1进程可以接管的时间戳。我并不是百分百肯定我可以安全地写一个长期的'没有它只被其他服务器部分读取的值......
我希望所有这些问题都很明确,而且我并没有尝试使用这种算法。
有什么想法?感谢您的兴趣或时间阅读它。