1、一个read系统调用后,DMA执行了一次数据拷贝,从磁盘到内核空间
2、read结束后,发生第二次数据拷贝,由cpu将数据从内核空间拷贝至用户空间
3、send系统调用,cpu发生第三次数据拷贝,由cpu将数据从用户空间拷贝至内核空间(socket缓冲区)
4、send系统调用结束后,DMA执行第四次数据拷贝,将数据从内核拷贝至协议引擎
5、另外,这四个过程中,每个过程都发生一次上下文切换
sendfile()
mmap:文件没错映射
1、一个read系统调用后,DMA执行了一次数据拷贝,从磁盘到内核空间
2、read结束后,发生第二次数据拷贝,由cpu将数据从内核空间拷贝至用户空间
3、send系统调用,cpu发生第三次数据拷贝,由cpu将数据从用户空间拷贝至内核空间(socket缓冲区)
4、send系统调用结束后,DMA执行第四次数据拷贝,将数据从内核拷贝至协议引擎
5、另外,这四个过程中,每个过程都发生一次上下文切换
sendfile()
mmap:文件没错映射
本文标题:零拷贝
本文链接:https://www.haomeiwen.com/subject/rsavvftx.html
网友评论