操作系统互斥的软件算法(turn程序有个不懂) 100

intturn=0;进程P0:do{while(turn!=0);进程P0的临界区代码;turn=1;。。。}while(true);进程P1:。。。上面“while(t... int turn=0;
进程 P0:
do
{
while (turn!=0);
进程P0的临界区代码;
turn=1;
。。。
}while(true);
进程P1:
。。。

上面“while (turn!=0);”是一句没有循环体的while语句,怎么理解?它有什么作用?
展开
 我来答
jerrysu1988
2011-08-20 · TA获得超过125个赞
知道答主
回答量:62
采纳率:0%
帮助的人:23.5万
展开全部
先补充出
进程P1:
do
{
while (turn!=1);
进程P1的临界区代码;
turn=0;
。。。;
}while(true);
这是软件实现临界区互斥的一个算法
可以这么理解
首先
在程序的开头声明了int turn=0;
P0跟P1进程同时运行
进程P0可以运行到
while (turn!=0);这一语句
进程P1是跟进程P0同时运行的,P1进程也会执行到
while (turn!=1);这一语句

由于turn的初始值是0
那么P0中这一while语句会因为不满足循环条件而终止。这样就可以进入P0的临界区代码了
此时P1中这一while语句会因为满足循环条件而陷入死循环,那么P1进程就会卡在死循环这,无法进入临界区。

while的作用就是制造死循环来限制进程进入临界区对临界资源的访问,来实现互斥。
保融科技
2024-10-18 广告
司库管理是对企业集团以资金为主要元素的金融资源从筹集到内部配置,再到运营管理所进行的动态及全面管理,并采用信息技术手段实现,使资金管理高度契合集团发展战略。司库管理平台是在外部政策性指导以及企业集团内部自身发展诉求双重背景下产生的集团化资金... 点击进入详情页
本回答由保融科技提供
qq840601860
2011-08-19 · 超过13用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:30.1万
展开全部
while (turn!=0);
循环体为空,就是什么都不做。
可以这么理解:
如果 turn = 0 ;
这句话跟没写一样。
如果turn = 1;
程序在执行到这句话停止。
直到turn变成0,继续向下执行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嬉哈风格
2011-08-10 · TA获得超过183个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:164万
展开全部
我记得C语言 当While(条件)后没有括号的时候, 默认其下一行语句为循环体。

turn信标不是1就一直运行P0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式