首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2];/*flag数组,初始化为FALSE*/
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2];/*flag数组,初始化为FALSE*/
admin
2014-04-17
40
问题
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码:
int flag[2];/*flag数组,初始化为FALSE*/
Enter_critical_section(int my_thread_id),int other_thread_id)
while (flag[other_thread-id]=TRuE); /*空循环语句*/
flag[my_thread_id]=TRUE;
}
Exit_Critical_Seetion(int my_thread_id),int other_thread_id)
{
flag[my_thread_id]=FALSE;
}
当一个线程想要访问临界资源时,就调用上述的这两个函数。例如,线程0的代码可能是这样的:
Enter_Critical_Section(0,1);
……使用这个资源……
Exit_Critical_Section(0,1),
……做其他的事情……
试问:
以上的这种机制能够实现资源互斥访问吗?为什么?
选项
答案
这种机制不能实现资源的互斥访问。 考虑如下的情形: 1)初始化的时候,flag数组的两个元素值均为FALSE。 2)线程0先执行,在执行while循环语句的时候,由于flag[1]=FALSE,所以顺利结束,不会被卡住。假设这个时候来了一个时钟中断,则打断它的运行。 3)线程1去执行,在执行while循环语句的时候,由于flag[0]=FALSE,所以顺利结束,不会被卡住,然后就进入了临界区。 4)后来当线程0再执行的时候,也进入了临界区,这样就同时有两个线程在临界区。 不能成功的根本原因是无法保证Enter Critical Section()函数执行的原子性,从上面的软件实现方法中可以看出,对于两个进程问的互斥,最主要的问题就是标志的检查和修改不能作为一个整体来执行,因此容易导致无法保证互斥访问。
解析
转载请注明原文地址:https://kaotiyun.com/show/5ixi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
试析二战后50一60年代日本经济高速发展的主要原因。(浙江大学2001年世界现当代史真题)
论述新石器时代及其文化类型。
首先明确提出“劳动决定价值”这一理论的经济学家是()。
《吕氏春秋》载:“公作则迟,有所匿其力也;分地则速,无所匿其力也。”这条材料反映的实质问题是()。
下列关于柏拉图的叙述不正确的是()。
我国第一部系统的史学理论著作是()。
系统总结了6世纪以前黄河中下游地区农牧业生产经验的著作是()。
下列对春秋时期各国称霸的顺序描述错误的选项是()
电子计算机的发展经过了:①电子数值积分计算机(ENIAC)②集成电路计算机③大规模集成电路汁算机④晶体管计算机⑤人工智能计算机其先后顺序是()。
中书省取代尚书省参与决策的部分职权,使尚书台成为主要行政中枢,这一历史现象出现在()。
随机试题
下列选项中,不属于组织行为研究内容的是()
男性,28岁。半小时前在山区修建公路时突发上腹部剧痛,持续并加重,近一年来常有空腹上腹痛。根据上述体征,可初步判断患者的疾病是
骨髓增生综合征的难治性贫血伴原始细胞增多转变型(RAEB一T)血象特点是
由所在地省级药品监督管理局给予警告,责令限期改正的药品生产企业的情况是
中砂垫层的承载力fa与下列______项数值接近。淤泥质软弱土层承载力与______项数值接近。
《中华人民共和国环境噪声污染防治法》规定:在城市市区噪声敏感建筑物集中区域内进行夜间建筑施工,因特殊需要必须连续作业的,必须( )。
项目建议书是()。
根据国家有关标准规定,化工企业冷却循环水加硫酸岗位的从业人员,应配备的劳动防护用品包括()
大量存款人的挤兑行为可能会导致商业银行面临()危机。
10个人围一圈,需要从中选出2个人,这两个人恰好不相邻,问有多少种选法?
最新回复
(
0
)