精华内容
下载资源
问答
  • 零拷贝

    2020-09-27 23:28:14
    零拷贝零拷贝(Zero Copy)概念优点传统拷贝方式零拷贝方式Gather Copy DMA零拷贝mmap零拷贝 零拷贝(Zero Copy) 概念 零拷贝指的是,从一个存储区域到另一个存储区域的copy任务没有CPU(ALU,Arithmetic Logic Unit...

    概念

    零拷贝指的是,从一个存储区域到另一个存储区域的copy任务没有CPU(ALU,Arithmetic Logic Unit算术逻辑单元)参与。通常用于网络文件传输。

    优点

    • 减少CPU消耗和内存带宽占用
    • 减少用户空间(用户可操作性的内存缓存区域)与CPU内核空间(CPU可操作性的内存缓存区域以及寄存器缓存)的拷贝过程
    • 减少用户上下文(用户状态环境)与CPU内核上下文(CPU状态环境)间的切换

    零拷贝需要DMA控制器的协助。DMA(Direct Memory Access),直接内存存取,是CPU的组成部分,其可以在CPU内核(算术逻辑运算器ALU等)不参与运算的情况下将数据从一个地址空间拷贝到另一个地址空间。

    传统拷贝方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XufAWUhY-1601220140043)(C:\Users\bbxyl\Desktop\nginx\image-20200927223454188.png)]

    该拷贝方式共进行了4次用户空间与内核空间的上下文切换,以及4次数据拷贝,其中两次拷贝存在CPU参与

    应用程序的作用仅仅就是一个数据传输的中介,最后将kernel buffer中的数据传递到了socket buffer。

    零拷贝方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evp3BKWa-1601220140045)(C:\Users\bbxyl\Desktop\nginx\image-20200927223832893.png)]
    Linux系统(CentOS6及其以上版本)对于零拷贝是通过sendfile系统调用实现的

    该拷贝方式共进行了2次用户空间与内核空间的上下文切换和3次数据拷贝,但整个过程均没有CPU的参与

    问:kernel buffer到socket buffer的拷贝需要吗?kernel buffer与socket buffer有什么区别呢?

    答:DMA控制器所控制的拷贝过程有一个要求,数据在源头的存放地址空间必须是连续的。kernel buffer中的数据无法保证其连续性,所以需要将数据再拷贝到socket buffer,socket buffer可以保证了数据的连续性。

    问:这个拷贝过程能否避免呢?

    答:可以,只要主机的DMA支持Gather Copy功能,就可以避免由kernel buffer到socket buffer的拷贝。

    Gather Copy DMA零拷贝

    该拷贝方式是由DMA完成,与系统无关,所以只要保证系统支持sendfile系统调用功能即可。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0U3BzEQb-1601220140048)(C:\Users\bbxyl\Desktop\nginx\image-20200927224310791.png)]

    该拷贝方式共进行了2次用户空间与内核空间的上下文切换和2次数据拷贝,整个过程均没有CPU的参与

    问:该拷贝方式有什么不足?

    答:传统拷贝中user buffer中存有数据,因此应用程序能够对数据进行修改等操作;零拷贝中的user buffer中没有了数据,所以应用程序无法对数据进行操作了。Linux的mmap零拷贝解决了这个问题。

    mmap零拷贝

    mmap零拷贝是对零拷贝的改进。当然,若当前主机的DMA支持Gather Copy,mmap同样可以实现Gather Copy DMA的零拷贝。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cjGIiFHc-1601220140056)(C:\Users\bbxyl\Desktop\nginx\image-20200927224639333.png)]

    该拷贝方式共进行了4次用户空间与内核空间的上下文切换和2次数据拷贝,整个过程均没有CPU的参与

    虽然较之前面的零拷贝增加了两次上下文切换,但应用程序可以对数据进行修改了

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,922
精华内容 1,568
关键字:

零拷贝