任务2-Peterson算法解决临界问题.docVIP

  • 9
  • 0
  • 约2.64千字
  • 约 4页
  • 2017-04-23 发布于重庆
  • 举报
任务2-Peterson算法解决临界问题

基本信息 实践题目:Peterson算法解决临界问题 完成人: 班级姓名:陈杨 学号:0706230101 报告日期 :2011年1月5日 实践内容简要描述 实践目标 1.理解临界区问题 2.掌握Peterson算法以解决临界区问题 实践内容 协作线程——兄弟问题 设置竞争条件: 定义两个全局变量:accnt1和accnt2,初值都为零; 创建两个线程acc1和acc2; (1)获得一个随机数 (2)从accnt1减去这个随机数; (3)将这个随机数加到accnt2中; (4)正确的话,accnt1+accnt2=0; (5)但在未实现线程互斥的情况下,accnt1+accnt2可能不为0。 用软件方法实现协作线程,以解决以上临界区问题——兄弟问题。 可采用Peterson算法或Dekker算法。 设计思路 利用Peterson算法,实现线程间的互斥。 boolean flag[2];//初值false int turn; do{ flag[i]:=true; turn=j; while(flag[j] and turn=j); 临界区; flag[i]=false; 剩余区; }while(1); i为线程自身的序号减去1,j为2减去该线程的序号。 当某一进程试图访问临界区时,若另一进程已在访问临

文档评论(0)

1亿VIP精品文档

相关文档