• 1.摘要
  • 2.基本信息
  • 3.算法概要
  • 4.实现方法
  • 5.说明
  • 6.三个标准

Peterson算法

Peterson算法是一个实现互斥锁的并发程序设计算法,可以控制两个线程访问一个共享的单用户资源而不发生访问冲突。Gary L. Peterson于1981年提出此算法。

基本信息

  • 中文名

    Peterson算法

  • 提出者

    Gary L. Peterson

  • 提出时间

    1981年

  • 应用学科

    程序计算

算法概要

/*

两个全局共享的状态变量flag[0]和flag[1],表示临界区状态及哪个进程正在占用临界区。

全局共享变量turn(值为1或0)表示能进入临界区的进程序号。

*/

实现方法

boolean flag[2];

int turn;

void procedure0()

{

while(true)

{

flag[0]=true;

turn=1;

while(flag[1]&&turn==1) /*若flag[1]为false,P0就进入临界区;若flag[1]为tureP0循环等待,只要P1退出临界区,P0即可进入*/

{

/* donothing*/

}

visit();/*访问临界区*/