在前面的文章中,介绍了DMA是如何工作,减轻CPU负担,提高系统性能的。除此之外还可以进一步优化系统性能,在这里介绍零拷贝技术。
直接给出定义:不需要用户空间作为数据中转的技术
先来看看client和server之间发送文件的过程:
DMA把数据从外设读取到内存中(内核空间),从内存写到网卡。但是还要把数据从内核空间拷贝到用户空间,如果应用程序不修改文件内容,直接发送,那么这两次拷贝是有待优化的,零拷贝技术就是解决的这个问题。
将page cache 地址与长度 传给 socket描述符,无需CPU进行内存搬运。
参考文档: