首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2]; /*flag数组,初始化为FALSE*/ En
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2]; /*flag数组,初始化为FALSE*/ En
admin
2017-11-20
84
问题
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码:
int flag[2]; /*flag数组,初始化为FALSE*/
Enter_Critica1_Section(int my_thread_id),int other_thread_id)
{
while (flag [other_thread_id]==TRUE);/*空循环语句*/
flag[my_thread_id]=TRUE;
}
Exit_Critica1_Section(int my_thread_id),int other_thread_id)
{
flag[my_thread_id]=FALSE;
}
当一个线程想要访问临界资源时,就调用上述的这两个函数。比如,线程0的代码可能是这样的:
Enter_Critica1_Section(0,1);
……使用这个资源……
Exit_Critica1_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/bARi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
中共十四届六中全会《关于加强社会主义精神文明建设若干重要问题的决议》,强调要()。
《共产党宣言》的主要内容不包括()。
开皇五年,文帝规定每年正月五日县令出查,令百姓五党三党为一团,根据标准定户等上下,从轻制定税额,并将各户应纳税额写成定簿,是为()。
第三世界所共有的特征及崛起的标志是什么?
佛教向亚洲国家传播始于印度的哪个时代?()
第三次科技革命对社会经济结构的影响是()。
下列关于《凡尔赛和约》的说法,全部错误的是()。①《凡尔赛和约》中不许德国设防区是莱茵河西岸50公里以内区域②《凡尔赛和约》中,战胜国处置德国的全部海外殖民地的方式是“托管制”③和约有关德国疆界问题,把原属波兰的领上基本上归还波兰④
民族区域自治制度
1980-1987年撒哈拉以南非洲人均国民生产总值增长率为-2.9%。大部分国家经济急剧下滑,非洲的80年代被称“为失去发展的十年”。出现这现象关键原因在于这些国家
某机的主要部件如下图所示。(1)请补充各部件间的主要连接线,并注明数据流动方向。(2)拟出指令SUB(R1),一(R2)的执行流程(含取指过程与确定后继指令地址)。该指令的含义是进行减法操作,源操作数地址和目的操作数地址分别在
随机试题
钙的摄入量与骨密度呈正相关,每日摄钙少于一定量容易发生骨质疏松症,该摄入量是
室外消火栓系统按管网布置形式可分为环状管网消火栓系统和枝状管网消火栓系统。()
卵巢非赘生性囊肿不包括
不能控制哮喘发作症状的药物是
痄腮与发颐的区别点是
融资租赁合同的内容一般包括的条款有()。
ThoughConfuciushaslonggone,hispowerfulideasundoubtedly______Chinesesocietyandtradition.
根据以下资料,回答下列问题。2013年3月末,金融机构人民币各项贷款余额65.76万亿元,同比增长14.9%,增速比上年同期低0.8个百分点。2013年3月末,主要金融机构及小型农村金融机构、外资银行人民币小微企业贷款余额11.78万亿元,同比增
WhenLouiseBethunewasagirl,shelikedto______.Louiselearnedtobeanarchitect______.
LearningaboutCognitiveGrammar(CG),anapproachtotheanalysisanddescriptionoflanguagestructure,isnoteasy.One
最新回复
(
0
)