搜索
当前位置: 678彩票官网 > 低级互斥 >

自旋锁--Test and Set Clock机制分析

gecimao 发表于 2019-04-18 14:21 | 查看: | 回复:

  目的:为了实现保护共享资源,任何时刻只能有一个保持者。即只有一个进程可以获得锁。

  自旋锁机制下,如果自旋锁已经被别的执行单元保持,那么调用者就一直循环在那里看自旋锁的保持者是否释放了锁,即忙则等待。很多出题点喜欢在这个概念上混淆,故意出成让权等待。让全等待是出让CPU,这里没有体现这个思路。因为跟CPU无关。自旋是个很形象的动作,表示一直在原地运动,并未去睡眠。这是区别于互斥锁的。

  当准备去获取自旋锁时,发现锁没人在用,顺利获得锁,可以访问共享资源。否则,就一直在等。这就像在火车上用卫生间,如果空闲,就可以马上进去,且把门锁上,保护隐私。用完了把门打开走掉。如果里面有人,只好在外面等,如果着急,你肯定会一直等着,在那着急自旋。这就是自旋锁机制。如果你不等了,回座位休息去,那就是互斥锁机制。

  Test_And_Set_Lock函数是用硬件保持的原子运行,不被打断。

  理解到这个地步,就可以来思考一道线)使用TSL指令实现进程互斥的伪代码如下:

  分析:由上面的一大段分析可知,A项表述的是信号量机制这些进程较长时才有的状态,即进程无法访问临界资源时要去睡眠,在TSL里,都是短进程,都是精力充沛的,忙则等待的类型。因此,没人睡,自然也不存在唤醒。

  ,防止进程忙等待。我们需要形成一种概念是,进程是程序的动态执行过程,忙则等待资源时,必然是在运行的进程,是有CPU在背后力挺的,睡眠就是说没有资源赶紧滚,别占着CPU!想一想进程调度的三大基本形态:就绪态,运行态,阻塞态三态之间的互相转化。

  因此,C项错,B项对,忙则等待就是要占着CPU,所幸的是进程不长,否则递归调用一定产生死锁。

  D项是很细致的考察,前面专门提过,TSL是多处理器下的进程并发问题,只有在中断机制下采用PSW,关中断/开中断方式来进行进程的并发控制。

  插值算法对于缩放比例较小的情况是完全可以接受的,令人信服的。一般的,缩小0.5倍以上或放大3.0倍以下,对任何图像都是可以接受的。最邻近插值(近邻取样法):最临近插值的的思想很简单。对于通过反向变...博文

  强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti...博文来自:

  jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ...博文来自:

  三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一

  阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。 采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。 编写一应用程...博文来自:

  1.手动卸载VS主体 2.下载工具并解压 下载地址:管理员运行,并输入Y(yes),等待卸载完成。...博文来自:

  上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别! 四、SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Age...博文来自:

  浮点数运算中的舍入问题:[reply]abigowl[/reply] 尾数右移时,不论丢掉的最高位数值位是1或0,都使右移后的尾数末位 ,恒置1 ,这种方法可能使尾数变大或变小。 以上唐朔飞机组原线只会使尾数变大。 想问对阶时右移如果一位一位移,那强调的最高数值位没意义了吧。

本文链接:http://windsorflowers.net/dijihuchi/87.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部