计算机操作系统原理

某杂技团进行走钢丝表演,在钢丝的A,B两端各有n名演员(n>1)在等待表演.只要钢丝上无人时便允许一名演员从钢丝的一端走到其一端.现要求两端的演员交替地走钢丝,且A端的一... 某杂技团进行走钢丝表演,在钢丝的A,B两端各有n名演员(n>1)在等待表演.只要钢丝上无人时便允许一名演员从钢丝的一端走到其一端.现要求两端的演员交替地走钢丝,且A端的一名演员先开始.请问,把一名演员看作一个进程时,怎样用PV操作来进行控制?请写出能进行正确管理的程序 展开
 我来答
匿名用户
2013-07-31
展开全部
在本题中,A,B端的演员(进程)共用一条钢丝(可用资源或信号量的缓冲区)
钢丝上一次只能通过一个演员。当钢丝上为空时,
A端可通过一个演员,这时B端的第一个演员等待,
重复过程,A,B两端N个演员全部通过,
设缓冲区的编号为1~z-1,定义两个指针in和out,它们分别是A端演员进程和B端演员进程使用的指针,指向下一个可用的缓冲区。
设置两个信号量分别为Gs 和Gsfull
int Gs=1; /*钢丝是否为空,缓冲区空了,初始值为1*/
int Gsfull=0; /*钢丝是否有人,缓冲区满了,初始值为0*/
main()
{
cobegin
int n=10
int i=1
while(i<=n)
{
i++;
Ags();
Bgs();
}
coend

/*A端演员进程*/
Ags()
{
while(1)
{
P(Gs);
A端演员上钢丝绳;
in=(in+1)mod z;
V(Gsfull);
}
}
/*B端演员进程*/
Bgs()
{
while(1)
{
P(Gsfull);
B端演员上钢丝绳;
out=(out+1)mod z;
V(Gs);
}
}
小黑格子David
2019-11-14 · TA获得超过1972个赞
知道答主
回答量:3795
采纳率:0%
帮助的人:201万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-31
展开全部
我不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-31
展开全部
A==B==C,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式