就为了一个原子操作(其他 CPU 核心罢工了)

本文来自微信公众号:编程技术宇宙(ID:xuanyuancoding),作者:轩辕之风i++问题“阿Q赶快回去吧,隔壁二号车间的虎子说我们改了他们的数据,上门来闹事了”由于老K的突然出现,我不得不提前结

此文来源于微信公众平台:技术编程宇宙空间 (ID:xuanyuancoding),创作者:瑶光歪风

i 难题

“阿 Q 赶紧回家吧,旁边二号车间的虎子说我们修改了学生的数据信息,上门滋事了”

因为老 K 的突然冒出,不得不提早结束和小黑沟通交流,回到了 CPU 一号车间。

看到我回家,虎子马上朝我嘟囔:“大家是什么原因?才几纳秒的时间也,把信息帮我修改了,你觉得这件事情该怎么办吧!”

我听着昏昏沉沉的,不断提到:“虎子先别着急,我刚回家,究竟出啥事儿了,先要我考虑清楚怎么样?”

就为了一个原子操作(其他 CPU 核心罢工了)

下面,老 K 把事情经过告诉了我。原先,我们俩 CPU 车间分别负责任的进程都是在实行一个 i 操作,大家还把 i 数值放进自己的缓存中,完了之后也没有通告另一方,添加了2次但结果却是只有一次,出现数据不一致难题。

原子操作

考虑清楚事情的原委以后,向您虎子讲到:“人们都实行一样的编码,这个事情也不能怪我们啊”

虎子一听急眼了,“如何不怨您了,大家比你们先一步找运行内存收走了 i,那么你们要等大家加满后再用啊,不信你能够打电话询问运行内存那小子,看是不是大家二号车间先的”

“说定了,先冷静一下,你看看他们又不知道你先到拿到了,这并不事出有因吗,再讲如今事早已出,我们要一起坐下想个办法防止之后再次发生这类问题,你说是不是?”

虎子叹了一口气询问道:“那你说说我有什么好办法?”

就为了一个原子操作(其他 CPU 核心罢工了)

就继续讲到:“你看啊,像我们在实行 i 这样的操作时就不该被影响”

“不会被影响?”

“对,例如虎子大家二号车间在浏览 i 时,大家一号车间就不可以浏览,必须等待,等你们浏览进行我们再,特别简单的方法却很有用”

虎子听后一愣,“这不就是上锁吗?你是要怪程序猿做 i 前并没有上锁?”

“确实是上锁,当然这种简易实际操作还需要程序猿来上锁这也太麻烦了,我们 CPU 内部结构解决满意就好了”

“内部结构解决,你打算如何完成?”,虎子问起。

“这,,让我想想・・・”,虎子问到具体的完成,我还想不到这一步。

这时候,一旁的老 K 挺身而出:“我倒是有个办法,能找总线负责人啊,这个人是承担融洽每个车间应用系统软件总线浏览运行内存的总指挥长,让他在正中间协调一下应当不会太难”

老 K 一语点醒梦里人,然后大家就要找了总线负责人,最后我们商议出一套解决方法:大家界定了一个叫原子操作的东西了,表明这是一个不能分割动作,谁要实行原子操作,总线负责人就在那系统软件总线上加上一个 LOCK#数据信号,别的车间的想要去浏览运行内存就要等待,直至原子操作命令执行完毕。

就为了一个原子操作(其他 CPU 核心罢工了)

我们可以把这一套计划方案汇报了领导干部,马上就审批了,后边大家 8 个车间都依照这一套计划方案来工作中,之后程序猿们把 i 这种姿势换为原子操作后,难题就可得到解决。

但是实施了一段时间之后,每个车间却开始大倒苦水:只因为某一车间要运行一个原子操作,就要总线负责人把系统软件总线锁定,别的车间的人都会无法浏览运行内存,都做不来活到,严重危害工作效能。

埋怨归抱怨,在没有任何更加好的替代选择出现的时候,日子还得了下来。

缓存所引发的难题

但是,没多久,数据不一致难题又一次出现。

这一次,倒也不是加减法问题,我们两车间也是因为分别缓存的主要原因,依次更改了自变量数值,对方没有及时了解,错用了不正确的值,以至酿成大错。

就为了一个原子操作(其他 CPU 核心罢工了)

“阿 Q,之前那方法好对好,可难以解决这一次的问题啊”,虎子再度找上门。

“你的恰好,我刚想去见你说这个事呢”

“哦,是不是,难道你想到破译之道了?”

“只是一些大体的念头,问题核心取决于如今我们每个车间各行其是,都有各自的私缓存,分别修改数据时向运行内存升级的时候也不相互之间问好,缺少一个联络机制”

虎子点点头,“的确,所以咱们必须建立一个联络机制,来对每个车间的缓存信息进行统一管理是不是?”

“对!这个事情我们俩讲了可算不上,个人觉得集结 8 个核心车间的典范,统一开一个大会,详尽探讨下这些问题。哦,正确了,把总线负责人又叫上,他阅历丰富说不定能提供一些构思”

缓存一致性协议书 MESI

迅速,我们 CPU 的 8 个核心车间就因此难题召开大会,而且获得了至关重要的成效。

大家牵了一条新的专线运输,把 8 个核心车间相互连接,用以每个车间之间信息交流,有别于 CPU 外部总线系统软件,大家把这个叫片内总线。

就为了一个原子操作(其他 CPU 核心罢工了)

一个新的路线铺装好啦,之后大伙儿就可以用这一条路线即时沟通,为解决以前遇到的问题,大家也建立了一套标准,称为缓存一致性协议书。

标准里边明确了全部车间的缓存模块 —— 缓存行有四种情况:

已修改 Modified (M)

缓存行早已被更改了,与运行内存数值不一样。假如其他 CPU 核心需读运行内存这方面数据信息,要赶在此之前把要缓存行回提到主存,把情况变成分享 (S).

独享 Exclusive (E)

缓存行只能在现阶段 CPU 核心缓存中,而且和运行内存数据中一样。当其他 CPU 核心载入它时,情况变成分享;假如现阶段 CPU 核心更改了它,就需要变成已修改状态。

分享 Shared (S)

缓存行存在好几个 CPU 核心的缓存中,而且和运行内存里面的内容一致。

失效 Invalid (I)

缓存好还是毫无意义的

四种情况间的变换是这样子的:

就为了一个原子操作(其他 CPU 核心罢工了)

依照这一套标准,大伙儿不能像之前那样随意了,各车间对自己家缓存开展读写能力时,都需要互相通一下气,尽量使用过时了数据信息。

此外,还要求假如一块内存区域被好几个车间都缓存,也就不再容许好几个车间与此同时去改动缓存了。

大会还有另外一个获得,之前被各车间吐槽的每一次原子操作都需要锁住总线,造成大家要浏览运行内存的也就只能干等待问题也获得了处理。之后总线负责人无需再锁住总线了,通过此次的缓存一致性协议书就能办得到。

从此之后,数据不一致问题终于是根除了,我们 8 个车间又能够轻松愉快的上班了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年10月10日 上午10:58
下一篇 2022年10月10日 上午11:00

相关推荐

  • 手机发出滋滋声的原因有哪些(手机为什么会发出滋滋滋的声音)

    平时在使用手机中,或多或少都会出些小问题,如果手机使用中偶尔出现沙沙声杂音那我们应该怎么办呢?一般使用排除法来解决,下面以华为荣耀手机为例,我把我的一点使用体会分享给大家,仅供参考,希望对大家有所帮助。 方法/步骤 1、磁场干扰对手机的影响:有可能是使用手机的附近有较强的电磁波干扰,从而导致出现杂音,我们可以多换几个地方使用手机,观察有什么变化。 2、手机是…

    2022年12月14日
    790
  • 日期函数公式怎么设置(工作中常用的四个日期计算公式)

    1. 简介 1.1 案例简介 本文将介绍如下几种常用的日期计算公式,帮助大家更好的使用日期函数。 当月天数 当月第一天/最后一天 当周第一天/最后一天 判断当年是否为闰年 1.2 预期效果 2. 设置方法 在学习之前建议安装日期函数应用模板,本文将按照模板中的示例数据进行讲解。 2.1 表单搭建 新建「日期计算汇总」表单,字段设置如下: 字段名称 字段类型 …

    2023年8月11日
    1370
  • 淘宝正品代购店推荐(附真假代购店的识别心得)

    淘宝正品代购店推荐,附真假代购店的识别心得。发迹号带你了解更多相关信息。来来来,激动人心的时候到了!!经过小编不懈努力终于找到淘宝上面值得信赖的好店铺,分享给你们,还不赶快收藏起来!淘宝上面的代购店铺

    2022年9月23日
    520
  • 岸田文雄是安倍的弟弟吗,原来他们的关系是这样

    很多中国网友有这样的疑问,岸田文雄是日本现任首相,安倍晋三是日本前任首相,他们之间是什么关系?岸田文雄是安倍的弟弟吗?其实,两人没有血缘关系,下面一起来了解下。岸田文雄岸田文

    2022年9月18日
    1460
  • 股票申购是什么意思(什么是股票申购)

    股票申购是什么意思,什么是股票申购。小编带你了解更多相关信息。1、股票申购就是申购新股,股票申购是在一级市场,上市发行是在二级市场。2、申购是指发行原始股票的时候用钱去买,因为新股发行的很少,要买原始股的人很多,所以就会将你买原始股票的

    2022年10月25日
    380
  • 五谷养生粥配方有哪些(五谷杂粮粥的配料表)

    在寒冷的冬天中人们都喜欢喝一些热粥,特别是五谷养生粥更是人们的最爱,平时喝五谷养生粥的好处有很多,能调理肠胃也能预防感冒,还能提高身体免疫力,不过不同食材煮成的五谷养生粥,做法与功效也不相同,下面我就为大家介绍一些常见五谷养生粥的做法与功效,喜欢吃粥的你们可以认真学一学。 五谷养生粥的做法与功效 1、五谷养胃粥 五谷养胃粥能调理脾胃,促进消化,也能缓解胃痛和…

    2022年11月12日
    250
  • 贞洁戒指戴哪个手指(戒指戴在左右手不同手指的含义)

    戒指不仅能够提升气质、修饰造型,同时还能够呈现出一个人的情感状态。尤其是将戒指佩戴在不同的手指上,所体现出的含义也有所不同。所以虽然戒指比较小,如果佩戴不是很恰当,还是很容易让人误会的,那么,戒指的戴法和意义是什么?戒指戴左手好还是右手好? . 【大拇指】 左手:拇指上一般不戴戒指。大拇指上戴戒指,代表着自信 右手:而右手则代表权力。 . 【食指】 左手:把…

    2023年1月11日
    260
  • 山西陈醋10大排名(山西哪种老陈醋最好吃)

    提到山西,想必很多人都会想到山西的老陈醋。多年来,山西老陈醋至始至终以低调的态势、低廉的价格、优异的品质遥遥领先于其他地方之食醋。纵观全国老陈醋著名生产基地,山西位于榜首。那么,在山西省,生产酿造老陈醋的公司也有许多。

    2022年10月26日
    3090
  • 什么是百度指数带你了解什么是百度指数

    百度指数是以百度海量网民行为数据为基础的数据分享平台。在这里,你可以研究关键词搜索趋势、洞察网民需求变化、监测媒体舆情趋势、定位数字消费者特征;还可以从行业的角度,分析市场特点。百度指数是以百度海量网

    2022年10月14日
    420
  • 斗罗大陆:都说修罗唐三很帅,却不知道手持修罗剑的小舞更霸气

    哈喽,大家好,我是心尘,日常带你从不同的角度看斗罗大陆。唐三作为斗罗大陆动漫的男主,他的存在毫无疑问是非常特别的,除了生世开挂外,唐三的人生也同样开挂。成为封号斗罗可以说是魂师梦寐以求的事情,而成神就已经是一件不可思议的事情,然而,唐三不仅成神,还继承的是双神位,在战斗过程中更是可以实现海神,修罗神相互切换,他的人生除了用开挂来形容真的没有更好的词了。斗罗作为热门IP,唐三所带来的商业价值自然不可…

    2022年4月26日
    1750

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信