- content {:toc} 深入浅出零拷贝及应用
当我们读取文件时
磁盘读取数据====>内核=====>应用程序
这还伴随着 用户态 和 内核态 的转换, (数字越小, 权限越高)
当从磁盘读取到, socket
时
- 磁盘读取数据====>内核=====>应用程序
- 应用程序====>内核=====>网卡
零拷贝的实现方式
DMA 传输
- 直接内存访问(DMA)允许设备直接访问内存,绕过 CPU。
- 避免了 CPU 的介入,提高了数据传输速度。
文件描述符传递
- 文件描述符传递是 UNIX 系统中实现零拷贝的方式之一。
sendfile
和splice
系统调用是典型的例子。