范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

自旋锁的底层实现

  简介自旋锁
  "锁"的作用就是保护临界区资源,避免不同的CPU同时访问相同的变量(或中断与进程同时访问相同变量)。非原子变量的赋值,大多数都不是一个指令周期能完成的,试想如果CPU1将某变量刚更改了一半,CPU2正好就来读取了这个半成品变量,并基于此去做计算,可能会造成严重后果。
  解决办法就是CPU1在改写这个变量前,先"加锁";CPU2访问这个变量前也先加锁,但由于已经被加锁了,所以获取锁失败,CPU2原地等待锁释放;CPU1改写完变量后,"解锁";CPU2获取到锁后加锁,然后访问变量,完成后解锁。
  上面的"锁"可以是信号量、互斥锁、自旋锁等。本文的自旋锁(spinlock)与其它锁的最大不同,就是在等待锁释放的时候不会睡眠,而是在空转(自旋)。信号量和互斥锁在等待锁释放的时候,会进入睡眠。
  不睡眠的好处是:可以在中断上下文运行;另外,对于很快就能获取到锁的场景,这种方式效率更高。
  不睡眠的坏处是:如果等待锁释放的时间较长,则极其浪费CPU资源。 自旋锁在X86的代码实现/******include/asm-i386/spinlock_types.h***/  typedef struct {                 unsigned int slock; } raw_spinlock_t;  #define __RAW_SPIN_LOCK_UNLOCKED { 1 }  /******include/asm-i386/spinlock.h***/  static inline void __raw_spin_lock(raw_spinlock_t *lock){     asm volatile(        // lock->slock减1       1:LOCK_PREFIX decb %0        //如果不为负.跳转到3f.3f后面没有任何指令,即为退出       jns 3f       //重复执行nop.nop是x86的小延迟函数       2:rep nop       cmpb $0,%0       //如果lock->slock不大于0,跳转到标号2,即继续重复执行nop       jle 2       //如果lock->slock大于0,跳转到标号1,重新判断锁的slock成员       jmp 1       3:: "+m" (lock->slock) : : "memory"); }
  在多处理器环境中 LOCK_PREFIX 实际被定义为 "lock"前缀。x86 处理器使用"lock"前缀的方式提供了在指令执行期间对总线加锁的手段。芯片上有一条引线 LOCK,如果在一条汇编指令(ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCH8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, XCHG)前加上"lock" 前缀,经过汇编后的机器代码就使得处理器执行该指令时把引线 LOCK 的电位拉低,从而把总线锁住,这样其它处理器或使用DMA的外设暂时无法通过同一总线访问内存。
  jns 汇编指令检查 EFLAGS 寄存器的 SF(符号)位,如果为 0,说明 slock 原来的值为 1,则线程获得锁,然后跳到标签 3 的位置结束本次函数调用。如果 SF 位为 1,说明 slock 原来的值为 0 或负数,锁已被占用。那么线程转到标签 2 处不断测试 slock 与 0 的大小关系,假如 slock 小于或等于 0,跳转到标签 2 的位置继续忙等待;假如 slock 大于 0,说明锁已被释放,则跳转到标签 1 的位置重新申请锁。

越来越多人不吊顶,不做背景墙,看看她家,明亮宽敞,以后照着装走进她家,才知什么叫越简单越好看,全屋大白墙不造型,耐看极了!说起现在的装修,已经不再流行各种所谓的造型和装饰了,尤其是吊顶和背景墙,烧钱不说还容易过时,反而是越简单的东西越耐看,毛主席比我们至少早看了50年这是王胡子王震将军说的一个观点。在毛主席离开我们已46个年头之际,越来越多的事实证明,毛主席确实具有超出绝大多数人的前瞻战略眼光。1。出兵抗美援朝利益极大。但当初中央政治局一开始几比理想ONE贵出十多万,理想L9为何敢自称500以内最好的家用SUV?近日,我们从相关渠道获知,理想汽车全新旗舰SUV理想L9正式发布,该车售价45。98万元,并于当晚开启预订,新车在8月正式交付。发布会当晚,由于预订过于火爆,理想汽车的官方APP出微信发布8。0。24正式版,增加9个新变化微信昨天发布了8。0。24正式版本,同时覆盖iOS和安卓。本次iOS和安卓版微信的版本号和新增功能均实现一致,下面就来看看又有哪些新变化吧。1支持查看已注销用户在通讯录界面点击右侧50年毛岸英牺牲,彭老总发了封电报到北京,上面110字2年前被公开1950年,毛岸英在入朝前夕的夜晚到医院见自己妻子最后一面。由于事关军事机密,再加上害怕刚做完手术的妻子为他担惊受怕,毛岸英并没有透露实情,只是含糊其辞地告知说我要到一个很远的地方文心雕龙文化知识分享(119)囍字的来历我国北宋时期,当年20多岁的王安石赴京赶考。有一天晚上他就住在一个镇上,这个镇,就叫马家镇。吃完饭以后,他就到外面去溜达,看到一个大户人家门口挂着一盏走马灯,上面写了一个医保智慧助老,我们这样做!为加快推进互联网医保发展,提升医保公共服务的水平,我们在闽政通APP的医保服务专区和福建医疗保障微信小程序增加了关怀模式,方便老年人使用手机进行医保业务掌上办网上办。以福建医疗保障没饿死古巴,美国自己先病了最近,古巴完成了一个不太可能的任务目前全世界唯一一个为几乎所有2岁以上儿童接种疫苗的国家。为什么说古巴的这项成就不太可能?除了疫苗研发本就不易,古巴还面临着一项纯粹人为制造的巨大困比戒色吧还拼!这个百度贴吧太狠了狐妹最近在微信找好友聊天,老找不到人。正寻思着这是手机被偷了,还是出啥事了?没想到,她跑去百度贴吧戒手机吧打卡了!戒手机?这年头真有人能坚持得住不玩手机?狐妹不相信,但好奇心作祟,齐秦与王祖贤分手20年他做幸福的四川女婿,她是孤独的女人花点击关注,每天都有名人故事感动您!齐秦与王祖贤齐秦是红遍华人世界的著名歌手,演唱的大约在冬季狼外面的世界冬雨往事随风原来的我无情雨无情的你等歌曲脍炙人口,感染了几代歌迷。齐秦的情感斯里兰卡经济彻底崩溃!燃油告罄全国停摆,粮食短缺,九成人饿着斯里兰卡,印度洋上的明珠之国。这里有着唯美如同油画的风景,有着世界四大红茶之一的锡兰红茶,有着美好的慢节奏生活,是无数人心中的佛国圣地。就在不久之前,斯里兰卡政府下令全国推行四天工
狙击手1950年为了保家卫国,反抗敌人的侵略,国家毅然决然做出了抗美援朝的重要历史决策。中国英雄高举社会主义旗帜,与朝鲜人民共同战斗,浴血奋战这中间,我们牺牲了数不清的中国英雄,这才赢下流媒体相互竞争的黄金年代已经逝去过去的半个年代,可谓是我们享受娱乐节目的黄金时期。因为流媒体盛行,包括奈飞迪斯尼HBO等大公司之间的相互竞争,给我们带来了无数的电影和电视剧。一夜之间,似乎观看影视成了我们的日常行行程卡纪念版是否合规?是否存在安全隐患?专家回应2022年12月13日0时,通信行程卡正式下线。一些有仪式感的网友赶在零点前截了个图,留作纪念。与此同时,一项名为行程卡纪念版的新型服务也随即在朋友圈流行。其依托微信小程序和微信公OPPO发布两款折叠屏手机售价5999元起!头条创作挑战赛OPPO召开2022未来科技大会,在大会第二天,OPPO发布了旗下最新折叠屏OPPOFindN2系列,共包括两款产品,分别为OPPOFindN2和OPPOFindN2随身超便携的多用途小伙伴!雷神2Mini拐角灯体验有这么一种灯,它脱胎于二战军用。既可别在上衣口袋或胸包,甚至帽檐上,亦可吸附于铁质物体表面。更可与绑带相连当作头灯。它的用途广泛,解放双手去做其它事。想必桐油们已经猜到了它的身份,利用NAS把闲置的带宽利用起来挣电费本内容来源于什么值得买APP,观点仅代表作者本人作者我是个人才引言作为一个垃圾佬,不能容忍NAS大部分时间是闲置的,于是就想着如何利用NAS闲置的资源来挣会待机的电费。现在各种视频李小冉,凹凸有致惹人羡基本在娱乐圈混的人就没有几个不是绯闻缠身的,但是也有一个女明星是比较低调的,她就是李小冉。李小冉的身材真的是内地第一,肤白貌美,凹凸有致。李小冉就是一个非常独特的存在,李小冉不仅长10家通勤男装品牌店铺分享2022生机大会百搭不贵秋冬必备!今天分享10家通勤男装品牌店铺,在国内外的款式和性价比都不错的品牌,非常适合男生日常通勤上班搭配,简约时尚又有轻熟感,干货满满记得收藏起来,想穿随羽绒服才不丑!这10套look承包整个冬天的美丽和温暖羽绒服才不丑!这10套look承包整个冬天的美丽和温暖哈喽呀离过年越来越近,大家是不是都在各种买新衣服,但又觉得很难挑到合心意的衣服呢?尤其是冬天的外套,觉得羽绒服暖但又觉得显土,带火机场穿搭的杨幂,又发功了,下面的日常私服也很赞提起杨幂肯定很多人不陌生,有人因为脍炙人口的电视剧作品关注的她,有人因为出其不意的梗关注的她,也有人是因为她的颜值和身材关注的她。但其实也有不少粉丝,是因为她的穿衣风格喜欢上的她,冬天穿羽绒服,不要非黑即灰,这些颜色时髦不浮夸,比黑灰色好看在冬天,羽绒服是最必不可少的一款服饰,羽绒服的保暖性能非常强,但是也非常容易穿出臃肿感,因为,羽绒服内里的填充物是轻飘飘的羽绒,这种物料膨胀感非常强,比较容易显胖。正是因为这种蓬松