`

进程合作

阅读更多

 在学习操作系统原理时候,发现有道题目:

给出一个进程流图(见附件),试用信号灯的P,V操作实现进程之间的同步,并写出程序描述。

两个答案,有什么区别?

第一种:

main()
{
   int s3=0;//表示p3可否执行
   
   cobegin
   p1();p2();p3();
   coend;
}

p1()
{
   .......
   v(s3);
}
p2()
{
   .......
   v(s3);
}
p3()
{
   p(s3);
   p(s3);
    .......
}

 

 

第二种:

main()
{
  int s1=0;//表示进程p1是否执行完成
  int s2=0;//表示进程p2是否执行完成
  
  cobegin
  p1();p2();p3();
  coend
}

p1()
{
  ......
  v(s1);
}

p2()
{
  ......
  v(s2);
}

p3()
{
  p(s1);
  p(s2);
  ......
}
 

 

大家讨论下应该用哪种?
  • 大小: 87.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics