零拷贝

作者: 大虾张三丰 | 来源:发表于2020-10-24 22:27 被阅读0次

传统IO一次读写操作要进行4次拷贝3次空间切换。

比如从硬盘读取文件操作,当read的时候,首先从用户空间切换到内核空间(一次空间切换),在内核空间通过DMA(Direct  Memory  Access,即直接内存拷贝,它是一种不使用CPU就能完成拷贝的技术)将硬盘的数据拷贝到内核空间的buffer(一次拷贝),然后再利用CPU拷贝技术将内核的buffer拷贝到用户空间(一次空间切换+一次拷贝)的buffer,当在用户空间处理完之后准备write的时候就会利用CPU拷贝技术将用户空间的buffer拷贝至内核空间的buffer(一次空间切换+一次拷贝),然后再利用DMA技术拷贝至硬盘(一次拷贝)

首先要明白的是没有真正意义的零拷贝,所谓的零拷贝是没有CPU拷贝的参与,而DMA拷贝是无法避免的。所以就看我们怎么去想办法减少CPU拷贝了。

相关文章

网友评论

      本文标题:零拷贝

      本文链接:https://www.haomeiwen.com/subject/ulywmktx.html