Linux内核--进程管理(十三)Zero-Copy

2024-01-08 07:49:21

目录

一、引言
二、数据拷贝基础过程
------>2.1、仅CPU方式
------>2.2、CPU&DMA方式
------>2.3、普通模式数据交互
三、零拷贝技术
------>3.1、mmap
------>3.2、sendfile
------>3.3、splice

一、引言

本章主要针对数据拷贝的过程进行优化

二、数据拷贝基础过程

在Linux系统内部缓存和内存容量都是有限的,更多的数据都是存储在磁盘中。对于Web服务器来说,经常需要从磁盘中读取数据到内存,然后再通过网卡传输给用户:
在这里插入图片描述

2.1、仅CPU方式

当应用程序需要读取磁盘数据时,调用read()从用户态陷入内核态,read()这个系统调用最终由CPU来完成;
CPU向磁盘发起I/O请求,磁盘收到之后开始准备数据;
磁盘将数据放到磁盘缓冲区之后,向CPU发起I/O中断,报告CPU数据已经Ready了&

文章来源:https://blog.csdn.net/weixin_38019025/article/details/135321062
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。