首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。 假设有如下的一段代码: int flag L22; /*flag数组,初始化为FALSE*/
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。 假设有如下的一段代码: int flag L22; /*flag数组,初始化为FALSE*/
admin
2017-04-28
30
问题
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。
假设有如下的一段代码:
int flag L22; /*flag数组,初始化为FALSE*/
Enter_Critical_Section (int my_thread_id) rint other thread_id)
{
while (flag[other thread_idl==TRUE); /*空循环语句*/
flag Emy_thread_id]=TRUE:
}
Exit_Critical_Section (int my_thread_id) tint other_thread_id)
{
flag[my_thread id] =FALSE;
}
当一个线程想要访问临界资源时,就调用上述的这两个函数。比如,线程O的代码可能是
这样的:
FJnter_Cri tical_Sect.ion(0,1);
……使用这个资源……
Exit_Critical_Section (0,1);
……做其他的事情……
试问:
如果把Enter_Critical_Section()函数中的两条语句互换一下位置,结果会如何?
选项
答案
可能会出现死锁。 考虑如下的情形: 1)初始化的时候,flag数组的两个元素值均为FALSE。 2)线程0先执行,flag[0]=TRUE,假设这个时候来了一个时钟中断,则打断它的运行。 3)线程1去执行,flag[1]=TRUE,在执行while循环语句的时候,由于flag[0]=TRUE,所以在这个地方被卡住了,直到时间片用完。 4)线程0再执行的时候,由于flag[1]=TRUE,它也在while循环语句的地方被卡住了,这样,这两个线程都无法执行下去,从而死锁。 本题出现死锁的原因是两个线程都可以直接进入Enter_Critical_Section()函数,并立即对flag[]进行修改,使flagLul和flag[1]的值都为TRUE;又因为无法保证Enter_Critical_Section()函数执行的原子性,导致了两个进程在停止while()语句的条件判断上,发生死锁。
解析
转载请注明原文地址:https://kaotiyun.com/show/UPRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
与前两次工业革命相比,第三次科技革命在能源结构上的主要变化是()
鸦片战争中,林则徐被革职查办反映的问题是()。
改革开放以来,乡镇企业的异军突起,其重要意义包括()①改变了公有制经济的主体地位②推动了农村产业结构的现代化进程③加快了农村的现代化进程④开辟了农民致富的新途径
新石器时代的房屋建筑根据环境的不同形成了不同的类型,()地区多为干栏式建筑。
北约和华约两个组织对峙近半个世纪,其影响是()。
论述欧洲一体化进程及其影响。
下列选项中,降低进程优先级的合理时机是____。
假设在一台单处理机上执行如下表所示的进程,且假定这些进程在时刻0以1,2,3,4,5的顺序创建。时间单位为时间片,优先级以数值大者为优。(1)请说明分别使用FCFS、RR(时间片=1)、SPF以及非抢夺式优先级调度算法时,这些进程的执行情况。(2)争
随机试题
卫生法中刑事责任的犯罪构成是
背景某建筑工程,建筑面积35000m2;地下2层,地上25层,筏板基础,钢筋混凝土剪力墙结构。室内隔墙采用加气混凝土砌块。建设单位依法选择了施工总承包单位,签订了施工总承包合同。合同约定:室内墙体等部分材料由建设单位采购;建设单位同意施工总承包单位将部分
资产的重组方式有( )。
对资源税征税范围中未列举名称的其他非金属矿原矿和其他有色金属矿原矿,由省、自治区、直辖市人民政府决定征收或暂缓征收资源税,并报( )备案。
在一定血压范围内肾血流量保持相对稳定主要靠()。
艺术:生活()
政府在开展一个关于政府工作作风的评议活动。现在需要对群众在评议活动中所反映的情况进行调研。领导把这个任务交给你。你会怎么做?
假设用12个二进制位表示数据。它能表示的最大无符号整数为(8);若采用原码,它能表示的最小负整数为(9)。
请在“考试项目”菜单上选择相应的菜单项完成以下内容:接收并阅读由ncre@163.com发来的E-mail,并回复内容为:“您所索要的E-mail地址是:mcre@sina,com”。【注意】“格式”菜单中的“编码”命令中用“简体中文
MostradioandtelevisionstationsintheUnitedStatesarecommercialstations,【C1】______istosay,theyearntheirmoneyfrom【
最新回复
(
0
)