什么是零拷贝?

news2024/11/15 11:06:36

零拷贝

什么是零拷贝

零拷贝指的是,从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底层是
通过DMA总线技术实现的。零拷贝与具体的编程语言无关,完全依赖于OS,OS支持就可使用,不支持
设置了也不起作用。
DMA(Direct Memory Access,直接内存访问)是一种计算机系统内部的数据传输技术,需要DMA总
线(硬件的体系结构)的硬件支持。其整个数据传输过程是在DMA控制器下完成的。
零拷贝在计算机内部数据拷贝及网络传输中都大量使用,用于减少CPU消耗和内存带宽占用,减少用户
空间与内核空间的拷贝过程,减少用户态与内核态间的切换次数,提高系统效率,提升系统性能。例如
远程服务器处理客户端浏览器的主页打开请求过程,就是一个零拷贝在网络传输中的典型应用。下面全
部以该场景为例进行分析。

传统拷贝方式

站在服务器角度,服务器操作系统经历了以下过程
在这里插入图片描述
该拷贝方式共进行了16次用户空间与内核空间的上下文切换,以及4次数据拷贝,其中两次拷贝存在
CPU参与。

零拷贝方式

在这里插入图片描述
该拷贝方式共进行了14次用户空间与内核空间的上下文切换,以及3次数据拷贝,但整个拷贝过程均没
有CPU的参与,这就是零拷贝。

Gather Copy零拷贝

该拷贝方式是由DMA完成,当然,需要当前主机的DMA支持Gather Copy方式。
在这里插入图片描述
该方式中没有数据拷贝到socket buffer。取而代之的是只是将kernel buffer中的数据描述信息写到了socket buffer中。数据描述信息包含了两方面的信息:kernel buffer中数据的地址及偏移量。该拷贝方式共进行了14次用户空间与内核空间的上下文切换,以及2次数据拷贝,并且整个拷贝过程均没有CPU的参与。

mmap零拷贝

mmap,Memory Map,存储映射。mmap零拷贝是对零拷贝的改进。当然,若当前主机的DMA支持
Gather Copy,mmap同样可以实现Gather Copy DMA的零拷贝。
在这里插入图片描述
该方式与普通零拷贝的唯一区别是,应用程序与内核共享了Kernel buffer。由于是共享,所以应用程序
也就可以操作该buffer了。当然,应用程序对于Kernel buffer的操作,就会引发用户空间与内核空间的
相互切换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL基础(二十二)逻辑架构

1.逻辑架构剖析 1.1 第1层:连接层 系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。 经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。 用户名或密码不对&#…

单脉冲测角和差波束法原理

和差波束测角及仿真 和差波束法原理MATLAB仿真 和差波束法原理 和差波束法是等信号测角方法中的一种,该方法利用两个形状完全相同但是部分重叠的波束,两个波束再形成和波束和差波束,由和差波束测量目标回波的入射角。 如下图所示&#xff0c…

seL4 操作系统微内核生态-ACM协会

美国计算机协会 (ACM) 将 2022 年 ACM 软件系统奖项授予 seL4 微内核团队。 SeL4是世界上第一个通过数学方法被证明安全的操作系统内核,并且在安全的基础上还强调高性能,是世界上最快、最先进的 OS 微内核。它对于嵌入式计算系统的安全可信赖方面将会有极…

先人一步了解Go 1.21版本新特性前瞻

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:tonybai|慕课网讲师 正在如火如荼地开发当中,按照Go核心团队的一年两次的发布节奏来算,Go 1.21…

【Java入门合集】第四章继承(二)

博主:命运之光 专栏:JAVA入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.掌握final关键字的使用; 5.掌握类变量、实例变量和局部变量的…

Cyanine5 maleimide马来酰亚胺活化荧光染料Cy5;1437872-46-2

CY5-MAL细胞标记是一种用于标记细胞的荧光染料,它可以被用于多种应用中。首先,CY5-MAL细胞标记可以被用于活细胞成像。通过将CY5-MAL细胞标记与活细胞结合,可以使细胞在显微镜下清晰可见。这种技术可以被用于研究细胞的结构和功能。其次&…

linux彻底卸载mysql步骤

第一步,先查看是否安装了mysql mysql -u root -p 如果提示bash: mysql: command not found...则没有安装过mysql 如果提示需要输入密码,那就证明安装了mysql 第二步,查看mysql运行状态并关闭 先查看下mysql的运行状态(如果已经…

redis(6)

基于redis中的list类型实现分页思路: list数据类型的应用场景: 1)对数据量大的集合做删减,比如说百度首页的热点新闻的列表,有一个换一换的功能,我们正是利用了list集合中的分页功能,使用lrange的命令,列表数据的显示&…

Anaconda——使用原因及创建方法

Anaconda——使用原因 一、使用原因二、创建虚拟环境的方法1、打开Anaconda Navigator2、点进Anaconda Powershell Prompt3、输入创建命令 参考文章 一、使用原因 Anaconda包含很多库Anaconda可以 创建虚拟环境 ,满足不同工程的要求的工具版本不一致问题&#xff0…

JavaScript中的异步函数(async/await)

1、async:异步的,await:等待。 一、作为async标识的函数与正常函数有两个区别: 1、当我们用async来声明一个函数的时候就说明这个函数是异步函数了,但事实上被声明的函数仍然是会在后面js之前求值,代码如…

四通道电容式智能门锁触摸芯片GT304L

智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。智能门锁区别于传统机械锁, 是具有安全性, 便利性, 技术的复合型锁具。使用非机械钥匙作为用户识别ID的成熟技术&#xf…

分布式事务(CAP定理和BASE理论)

CAP定理 分布式系统无法同时满足这三个指标,这个结论就叫做CAP定理。 分布式系统三个指标: Consistency (一致性)Availability (可用性)Partition tolerance(分区容错性) Consistency (一致性) 用户访问分布式系统中的任意节点,得到的数据必须一致 A…

【最终截稿 | Springer 独立出版 | EI稳定检索】 2023年能源与环境工程国际会议(CoEEE 2023)

会议简介 Brief Introduction 2023年能源与环境工程国际会议(CoEEE 2023) 会议时间:2023年5月19日-21日 召开地点:瑞典马尔默 大会官网:www.coeee.org CoEEE 2023将围绕“能源与环境工程”的最新研究领域而展开,为研究人员、工程师…

拥有Java基础对比学习C#基本语法

文章目录 一、引包二、构造函数三、析构函数四、C#数据类型五、加框(boxing)和消框(unboxing)六、运算符七、控制语句八、类的继承九、方法参数的种类十、操作符重载十一、this关键字十二、类的多态十三、抽象类和抽象方法十四、密封类和密封方法十五、接口十六、代…

Laf Assistant:云开发从未如此爽快!

原文链接:https://forum.laf.run/d/67 工欲善其事,必先利其器。在编写代码时,IDE 也是我们不可或缺的。它可以让我们更高效地完成代码编写,提高开发效率。因此,IDE 是我们编写代码中最亲密的伙伴之一。 虽然 Laf 云开…

关于并发编程与线程安全的思考与实践 | 京东云技术团队

作者:京东健康 张娜 一、并发编程的意义与挑战 并发编程的意义是充分的利用处理器的每一个核,以达到最高的处理性能,可以让程序运行的更快。而处理器也为了提高计算速率,作出了一系列优化,比如: 1、硬件…

MS8257N跨阻放大器pin对pin兼容OPA857

MS8257N 是一颗宽带、快速过载恢复时间、快速建立时间、跨阻增益可调、超低噪声的跨阻放大器,主要用于光电监测和各种高性能的光电系统。可pin对pin兼容OPA857。快速过载恢复特性和内部输入保护电路可以让信号从过载传输中快速恢复正常。两档可选跨阻增益保证了极高…

MySQL基础(十八)MySQL8其它新特性

1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是MySQL Optimizer优化器进行了改进。不仅在速度上得…

【Redis】概述与安装

概述 Redis 是什么? Redis(Remote Dictionary Server ),即远程字典服务; 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。 Redis 会周期性的把…

深入理解什么是 dp(dip)

文章目录 dp 的计算公式dp 计算的例子dp 的来历究竟什么是 dp dp 的计算公式 dp 是安卓 UI 开发中最常见的单位之一,它有一个别名 dip。dp 与 dip 是同一个意思。dp 指的是什么呢?官方的解释是 device independent pixels(设备独立像素&#…