操作系统互斥的软件算法(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语句,怎么理解?它有什么作用? 展开
进程 P0:
do
{
while (turn!=0);
进程P0的临界区代码;
turn=1;
。。。
}while(true);
进程P1:
。。。
上面“while (turn!=0);”是一句没有循环体的while语句,怎么理解?它有什么作用? 展开
3个回答
展开全部
先补充出
进程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的作用就是制造死循环来限制进程进入临界区对临界资源的访问,来实现互斥。
进程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 广告
2024-10-18 广告
司库管理是对企业集团以资金为主要元素的金融资源从筹集到内部配置,再到运营管理所进行的动态及全面管理,并采用信息技术手段实现,使资金管理高度契合集团发展战略。司库管理平台是在外部政策性指导以及企业集团内部自身发展诉求双重背景下产生的集团化资金...
点击进入详情页
本回答由保融科技提供
展开全部
while (turn!=0);
循环体为空,就是什么都不做。
可以这么理解:
如果 turn = 0 ;
这句话跟没写一样。
如果turn = 1;
程序在执行到这句话停止。
直到turn变成0,继续向下执行。
循环体为空,就是什么都不做。
可以这么理解:
如果 turn = 0 ;
这句话跟没写一样。
如果turn = 1;
程序在执行到这句话停止。
直到turn变成0,继续向下执行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我记得C语言 当While(条件)后没有括号的时候, 默认其下一行语句为循环体。
turn信标不是1就一直运行P0
turn信标不是1就一直运行P0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询