转自http://blog.csdn.net/l294265421/article/details/46674847 假设有两个进程需要互斥的访问某一个临界区。 Peterson算法的形式如下: 具体实现如下(Java实现): 有两个全局变量: enterRegion方法实现如下: leaveReg ...
分类:
编程语言 时间:
2018-02-26 23:23:48
阅读次数:
218
今天学习一下Perterson Algorithm. 这个算法是使用三个变量来实现并发程序的互斥性算法。 具体看一下代码: Peterson算法是一个实现互斥锁的并发程序设计算法,核心就是三个标志位是怎样控制两个方法对临界区的访问,这个算法设计的想当精妙,我刚开始看的时候就被绕了一下。 算法使用两个 ...
分类:
其他好文 时间:
2017-12-29 15:26:08
阅读次数:
134
相对于Dekker算法(参见进程互斥(二)Dekker算法),Peterson算法简化了进程互斥的实现。
假设有两个进程需要互斥的访问某一个临界区。
Peterson算法的形式如下:
public void peterson(int process) {
enterRegion(process);// process表示进程号
// 临界区
leaveRegio...
分类:
编程语言 时间:
2015-06-29 10:08:06
阅读次数:
154
1 #define FALSE 0 2 #define TRUE 1 3 #define N 2 /*进程数量 */ 4 5 int turn; /* 现在轮到谁 */ 6 int interested[N]; ...
分类:
编程语言 时间:
2014-12-15 23:13:49
阅读次数:
667
保证在某一时刻只有一个线程对数据进行操作的基本方法:(1)关中断:通过关闭时钟中断来停止线程调度(不现实)(2)数学互斥方法:Peterson算法 bakery算法(3)操作系统提供的互斥方法:临界区、互斥量、信号量等(windows)(4)cpu原子操作:把一些常用的指令设计成了原子指令,在win...
分类:
编程语言 时间:
2014-08-01 19:00:42
阅读次数:
266