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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!