Peterson-2互斥算法

时间:2011-11-27 18:29:41

标签: algorithm synchronization operating-system mutual-exclusion

经典Peterson-2 algorithm的无争用复杂度为4(因为它对共享寄存器内存执行4次读/写操作)是否存在Peterson-2算法的一些版本,这需要较少访问共享寄存器记忆? 很明显,1次访问是不可能的。但是2次或3次访问呢? 谢谢

1 个答案:

答案 0 :(得分:2)

每个关键部分至少需要三个操作:写入和读取条目(声明获取互斥锁并验证其他进程尚未获取),写入退出(释放互斥锁)。在进入时,Peterson算法中的进程id写入单写入器寄存器interested[id]和多写入器寄存器turn。以将有界寄存器转换为也包含无界版本号的寄存器为代价,对于两个进程,通过两个单写入寄存器模拟多写入器寄存器,每次写入1次写入,每次读取1次读取,允许彼得森算法中两个写的合并。