零拷贝和多路复用模型~皎月

零拷贝和多路复用模型

1.零拷贝

1.1 零拷贝简介

​ 零拷贝指的是从一个存储区域到另一个存储区域的 copy 任务没有 CPU 参与.

​ 通常用于网络文件传输, 以减少 CPU 消耗内存带宽占用, 减少 用户空间CPU 内核空间 的拷贝过程, 减少 用户上下文CPU 内核上下文间的切换, 提高系统效率.

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

1.2 传统拷贝

场景 将一个硬盘中的文件通过网络发送出去

​ 4 次用户空间与内核空间的上下文切换,以及 4 次数据拷贝

存在问题

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

1.3 零拷贝实现

​ 通过 sendfile 系统调用实现的

kernel buffersock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值