操作系统 独木桥问题

操作系统 独木桥问题


2024年5月2日发(作者:电脑软件有哪些)

假定有如下独木桥问题:过桥时,同一方向的行人可连续过桥,当某一方有人过

桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以

过桥。试用信号量机制解决。

答案:

(1)

将独木桥的两个方向分别标记为A和B。用整型变量countA和countB分别

表示A、B方向上已在独木桥上的行人数。初值为0。需要设置三个初值都为1

的互斥信号量:SA用来实现对countA的互斥访问,SB用来实现对countB的互

斥访问,mutex用来实现对独木桥的互斥使用。

(2)

A方向行人过桥:

Begin

P(SA);

countA=countA+1;

if (countA= =1)

P(mutex);

V(SA);

过桥;

P(SA);

countA=countA-1;

if(countA= =0)

V(mutex);

V(SA);

End

B方向行人过桥:

Begin

P(SB);

countB=countB+1;

if (countB= =1)

P(mutex);

V(SB);

过桥;

P(SB);

countB=countB-1;

if(countB= =0)

V(mutex);

V(SB);

End

定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;empty控制生产

者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下:


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1714604260a2478814.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信