数据搬运工
你好,我是CPU一车间的Q,有段时间没见了。
还记得上次我说我们厂用了DMA技术后,我们终于解放了,再也不用奔波于网卡,硬盘,内存之间传输数据了。
前段时间去二车间看望老虎,发现他满头大汗。
兄弟,你接到什么任务了。看你给你忙
老虎见我来了,擦了擦头上的汗,说:我带着数据呢我刚搬完一批,累死了
我有点疑惑:我们现在不是有DMA技术吗为什么找个外包的DMA控制器来扛,自己亲自上阵
DMA用来在I/O外部设备和内存之间传输数据我现在的任务就是复制复制记忆这个DMAC帮不上忙,我还得自己抄
我干脆,干脆,太忠,我希望我不要接到这种任务
我先不跟你说,但是有工作要做还没热起来,你又起来上班了,我就起来准备回去了
我靠!怎么又复制了这批数据!刚走了两步就听到没什么吐槽的声音。
我转身问:怎么了。
我只是将这些数据从内核地址空间复制到用户地址空间一次还没喘过气来,又让我从用户态转移到内核地址空间
我拍拍他的肩膀说:哎,我们也没办法我们只是在工作让我们挑选哪一轮
我一边给他打气,一边暗暗祈祷不要给我这种活,又累又没技术含量。
天气变幻莫测,我回到一号车间没多久,就发生了这种事老话说,真的是怕什么来什么
一开始,我还能忍受时间久了,我抑制不住自己的不满直到摔在自己身上才知道痛
四份数据副本
第二天和你约好去操作系统内存管理部汇报这件事。
内存管理部门居然踢皮球,说不归他们管让我们去I/O部门,但是没有办法我们来到I/O部门对此做出反应
听了我们的抱怨,I/O部门的人也很无奈:伙计们,真的不是我们故意耍你们之前真的没有办法让你移动两次数据这是上面的应用程序应该写的他们必须读出硬盘上的文件,然后通过网卡发送出去读完写完不用搬两次吗
File.readSocket.send,
硬盘网卡这,这,这,我们不是有DMA技术吗,只是解决了和他们的数据传输为什么我们要从一个内存复制到另一个内存我问
对方看出了我们的疑惑,在旁边的白板上画了一张图:
你看,数据最终从硬盘到网卡因为有应用的参与,它们需要先读取自己在用户空间的缓存区,然后再发送出去,这样总共有四次数据传输其中,DMAC可以帮助你从硬盘到内核空间,从内核空间到网卡的承载但是,剩下的用户空间和内核空间两个副本是来回的,由你来扛
我明白了,唉,看来是没有办法避免了我们先回去吧你看完图难过的说
但是我不想放弃我想找出这张图有哪些可以优化和改进的地方
能不能要求数据不要去应用,直接在内核空间复制一次就好,这样我们就可以少带了,我抛出一个问题
这怎么可能呢如果他不看,以后怎么发出去不,I/O部门连连摇头
你还是可以寄的你看,像这样,到最后,数据无论如何都会从内核空间发送到网卡,只是白白省去了数据去用户空间的浪费我改了他的画,不肯放弃解释
对方被我的话惊醒,眼珠左右转动,想了又想。
过了一会儿,我回:还是不行万一有人想修改或解密读取的文件数据,还是要读取他的用户空间缓存
我想了一下,似乎不可避免,说:那我们就承认这种情况吧反正以我的经验,你说的这种情况不多在大多数情况下,数据从内核到用户空间是完整的,从用户空间回到内核也是完整的
I/O部门也没再有什么说辞,就点头同意了,说等我们把意见上报Linux帝国高层讨论后再做决定我们先回去等消息吧
零拷贝技术
但是后来工作太忙,操作系统也没有消息慢慢的,我们就把这事忘了,直到前几天
阿q,你听说了吗最近在Linux帝国里新成立了一家公司,居然可以绕过我们的CPU,把网卡的数据写到硬盘,你急着来找我
不可能,按照我们之前的计划,至少要复制一次。
一点也不,他们自称是零拷贝技术
让我们放下手中的工作,了解一下情况。
原来Linux帝国最近推出了一个叫做sendfile的新API。
ssize _ tsendfile
只有指定打开文件的描述符和要发送的网络接口的描述符,才能直接通过网络发送文件。
我们又一次来到了操作系统I/O部门对方一见是我们,就热情接待了我们
你来的正好,我还没来得及告诉你你上次提到的想法很好,帝国高层非常重视我一反应过来,马上采纳了你们的意见不,你可能知道,已经引入了一个新的API供应用程序使用,它可以免费节省数据进入用户空间的成本一推出就大受欢迎,我得为此感谢你
原来是这样,我说最近怎么处理数据的工作少了但是你是怎么做到零拷贝的
I/O部门的人看了我们几眼,得意地笑了在讨论你的方案时,帝国高层觉得还可以进一步优化只需把从硬盘读取的数据缓冲区的地址和长度给网络套接字描述符,就不用再携带数据了,彻底解放你
我们互相点头称赞。
这还没完呢!我们的Linux帝国也把这种技术延伸到了文件数据复制上,增加了另一个API:splice,这样文件复制也可以减轻你以后的负担。
ssize _ tsplice
我们回去后,把这个消息告诉了全厂,大家都喜出望外原来所有的作坊都苦了很久
1个鸡蛋
在遥远的Windows帝国。
部长,我听说Linux帝国推出了一个sendfile,叫做零拷贝
有这种事吗我们不要落后,去研究一下
两个鸡蛋
Linux帝国有一家新公司,专注于网络包分析。
老板,数据包每次都要经过Linux帝国的协议栈部门处理才能拿到,太慢了
能不能绕过协议栈直接抓取数据包。
声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。
三大航货运业务逆势增长,燃油附加费翻番 三大航去年亏损仍在加剧,航空业出路何在。3月30日晚间,国内三大航司相继发布2021年年报,三大航营收均录得增...
3999元起,小米11Ultra手机限时特惠150 日前,小米春季发布会上正式推出了小米11Ultra,该机拥有黑白两色,精密陶瓷工艺机身,黑色沉稳大气,白色优雅...
新北洋:累计回购605万股占比0.9088% 每经AI快讯,新北洋3月31日晚间发布公告称,截至2022年3月31日,公司累计通过回购专用证券账户以集中竞价...
中青旅:2021年营收同比增长两成持续布局“旅游+ 中青旅3月31日披露2021年报,公司全年实现营业收入86.35亿元,较上年增加20.76%,实现归属于上市公...
高值设计·重构未来——SK瓷砖x金堂奖战略合作云发 SKCERAMICS2022随着消费新升级,新生代消费群体对居住空间的诉求,越来越艺术化、多元化、个性化。SK...
605389长龄液压3月24日收盘小幅上涨0.57 2022年3月24日长龄液压(605389)收盘点评:长龄液压今日小幅上涨.57%,早盘低开-0.50%,报4...
600358国旅联合3月24日全天上涨2.48%, 2022年3月24日国旅联合(600358)收盘点评:国旅联合今日上涨2.48%,早盘低开-0.41%,报7....
600386北巴传媒3月24日收盘数据:较昨日下跌 2022年3月24日北巴传媒(600386)收盘点评:北巴传媒今日微跌-.25%,早盘高开0.25%,报4.0...
海能实业:2021年度独立董事述职报告王义华 安福县海能实业股份有限公司2021年度独立董事述职报告王义华各位股东及股东代表:本人作为安福县海能实业股份有限...
601598中国外运3月24日股价收盘3.88元与 2022年3月24日中国外运(601598)收盘点评:中国外运今日股价与昨日持平早盘高开0.77%,报3.91... 
601138工业富联3月24 2022年3月24日工业富联(60113...
陈小春开启京东汽车超级直播夜 11月9日晚18点,京东汽车11.11超...
挑战善行者丨2021速8酒店 热爱不止,善行不息善行者是一种勇气善行者...
布局宠物蓝海市场安心养宠物计 京东健康宠物医院作为安心养宠物最重要的升...
苏炳添用9秒83的佳绩带领亚 每0.01秒的提升都是汗水与泪水...
4×100米接力决赛 中国男 4×100米接力·决赛中国女队4...
JBL/UA PROJECT 在这七月热汗运动季,由高保真至潮...
中国队“00后”纷纷登上东京 杨倩、管晨辰、李雯雯、全红婵……...
体育赛事招商的三大注意事项 今年4月姚明和篮协对CBA商务开发权的争...
传统体育文化的两大现代价值 中国传统体育文化丰富多彩,内容博大精深,...
当今世界体育对人的价值体现在 不知你想过没有,在当今这个高度互联网化、...
体育分析中机器学习的标准:预 运动分析有相当一部分属于机器学习,即从数...
进行冬奥会体育营销的五个关键 明年冬奥会将在北京和张家口举行,关于奥运...
父母如何从家庭教育当中反思自 某天晚上睡不着,忽然想到能够写这么一个角...
思维教育对幼儿的四大好处 思想教育对幼儿的益处,幼儿思想处于直观行...
父母教育孩子前必须要知道的前 网上的很多文章提到过,一些懵懂型鸡娃的家...
华为是第一大客户EDA第一股 在半导体芯片设计领域,EDA软件也是卡脖...
新的设计和技术风向奥迪gra 2021年9月3日消息,奥迪将在2021...