首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2];/*flag数组,初始化为FALSE*/
假设有一个进程拥有两个线程(编号为0和1)需要去访问同一个共享资源,为了避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程在访问这个资源。假设有如下的一段代码: int flag[2];/*flag数组,初始化为FALSE*/
admin
2014-04-17
45
问题
假设有一个进程拥有两个线程(编号为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),
……做其他的事情……
试问:
如果把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 Criticall Section()函数,并立即对flag[]进行修改,使flag[0]和flag[1]的值都为TRUE;又因为无法保证Enter CriticaL Section()函数执行的原子性,导致了两个进程在停止while()语句的条件判断上发生死锁。
解析
转载请注明原文地址:https://jikaoti.com/ti/hjajFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
明万历年间使地主与农民之间仅仅存在着单纯的经济关系而没有人身依附关系的是()。
下列关于唐代三省六部制的说法错误的一项是()。
1936年,张学良和杨虎城发动的西安事变()。①是一次具有爱国意义的兵变②民族矛盾激化的结果③检验了中国社会各阶级的抗日态度④促成了抗日民族统一战线初步形成
魏晋南北朝的手工业技术有所进步,下列各项能反映这一特点的是()。①培育出“三熟之稻”②“灌钢”技术的发明③吴培育出八辈之蚕④纸成为最主要的书写材料
编写判定给定的二叉树是否是二叉排序树的函数。
试编写一个非递归算法,实现求以二叉链表存储的二叉树中q结点的祖先。
某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下:假定int类型数据用32位补码表示,程序
在图B-3所示的采用“存储.转发”方式的分组交换网络中,所有链路的数据传输速率为100Mbit/s,分组大小为1000B,其中分组头大小为20B。若主机H1向主机H2发送一个大小为980000B的文件,则在不考虑分组拆装时间和传播延迟的情况下,从H1发送开
某计算机有五级中断L4~L0,中断屏蔽字为M4M3M2M1M0,Mi=1(0≤i≤4)表示对Li级中断进行屏蔽。若中断响应优先级从高到低的顺序是L4→L0→L2→L1→L3,则L1的中断处理程序中设置的中断屏蔽字是____。
下面输入一个很诡异的链表,暂时称它为“变异链表”,如图4—3所示。从图中可以看出此链表的尾部形成了一个环,请实现一个时间和空间上尽可能高效率的算法来判断输入的链表是否为“变异链表”,要求:说明你所设计算法的时间复杂度和空间复杂度。
随机试题
张先生现在总资产800万元,则他适合( )产品。
诚信租行是一家金融租赁公司,拟今年上市,因此聘请A投资银行进行IPO材料的编写,按照行业分类,在联合国统计署按经济活动类型分类中,A投资银行属于金融中介的()子类。
金融中介的职能不包括()。
根据《破产法》的规定,下列()属于破产费用?
开放参观活动中的解说和接待的准备工作应包括()。
根据以下资料,回答下列问题。改革开放三十多年以来,广东经济发展连上新台阶,综合实力不断实现大跨越。1979~2012年,世界经济年均增长速度为2.8%,中国增速为9.8%,广东增速则达13.3%。持续较快的经济增速,推动广东经济总量不断跃上新台阶
该商场第三季度各类电器的销售中,按从多到少排列,医疗保健器材排名()。
物联网技术作为智慧城市建设的重要技术,其架构一般可分为(7),其中(8)负责信息采集和物物之间的信息传输。(8)
A、 B、 C、 D、 D
函数fun的功能是计算xndoublefun(doublex,intn){inti;doubley=1;for(i=1;i<=n;i++)y=y*x;returny;}主函数中已正
最新回复
(
0
)