当前位置: 首页 > news >正文

珠海网站建设 金碟百度推广如何办理

珠海网站建设 金碟,百度推广如何办理,网站建设奕网情深,xampp 安装wordpress一、传统拷贝方式(一)操作系统经过4次拷贝CPU 负责将数据从磁盘搬运到内核空间的 Page Cache 中;CPU 负责将数据从内核空间的 Page Cache 搬运到用户空间的缓冲区;CPU 负责将数据从用户空间的缓冲区搬运到内核空间的 Socket 缓冲区…

一、传统拷贝方式

(一)操作系统经过4次拷贝

  • CPU 负责将数据从磁盘搬运到内核空间的 Page Cache 中;

  • CPU 负责将数据从内核空间的 Page Cache 搬运到用户空间的缓冲区;

  • CPU 负责将数据从用户空间的缓冲区搬运到内核空间的 Socket 缓冲区中;

  • CPU 负责将数据从内核空间的 Socket 缓冲区搬运到的网络中;

(二)4 次上下文切换

  1. read 系统调用时:用户态切换到内核态;

  1. read 系统调用完毕:内核态切换回用户态;

  1. write 系统调用时:用户态切换到内核态;

  1. write 系统调用完毕:内核态切换回用户态;

二、DMA参与下的数据拷贝

DMA参与后只是在”拷贝1“的位置,暂时交给DMA来控制,可以暂时释放CPU去做别的事情。

三、mmap+write方式实现的零拷贝

(一)上下文状态切换:

1.用户进程通过mmap方法,向操作系统内核发起IO调用,用户态切换内核态;

2.内核态切换回用户态,mmap方法返回;

3.用户进程通过write方法向操作系统内核发起IO调用,上下文从用户态切换为内核态;

4.数据从socket缓冲区拷贝到网卡结束后,上下文从内核态切换回用户态,write调用返回。

(二)数据拷贝

1. CPU利用DMA控制器,把数据从硬盘中拷贝到内核缓冲区;

2.CPU将内核缓冲区的数据拷贝到socket缓冲区

3.CPU利用DMA控制器,把数据从socket缓冲区拷贝到网卡

mmap+write方式的实现的零拷贝,IO发生了4次用户空间和内核空间的上下文切换,这个并没有节省,但是数据拷贝减少了一次。

其中2次DMA拷贝和1次CPU拷贝。

(mmap是将读缓冲区的地址和用户缓冲区的地址进行映射,内核缓冲区和应用缓冲区共享,所以节省了一次CPU拷贝,并且用户京城内存是虚拟的在,只是映射到内核读缓冲区,可以节省一半的内存空间。)

四、sendfile实现的零拷贝

sendfile是Linux2.1内核版本后引入的一个系统调用函数,

API如下:

ssize_t sendfile(int out_fd,int in_fd,off_t *offset,size_t count)
out_fd为待写入内容的文件描述符,一个socket描述符;
in_fd为待读出内容的文件描述符,必须是真实的文件,不能是socket和管道;
offset:制定从读入文件的哪个位置开始读,如果为NULL,表示文件的默认起始位置;
count 制定在fdout 和 fdin之间传输的字节数。

sendfile表示两个文件描述符之间传输数据,它是在操作系统内核中操作的,避免了数据从内核缓冲区和用户缓冲区之间的拷贝操作,因此可使用他来实现零拷贝。

(一)上下文状态切换+数据拷贝

1.用户进程发起sendfile系统调用,上下文从用户态转向内核态

2.DMA控制器,把数据从硬盘中拷贝到内核缓冲区;

3.CPU将读缓冲区中的数据拷贝到socket缓冲区;

4.DMA控制器,异步将数据从socket缓冲区拷贝到网卡;

5.上下文从内核态切换回用户态,sendfile返回。

sendfile实现的零拷贝,IO发生了两次用户空间与内核空间的上下文切换,以及3次数据拷贝,其中3次数据拷贝中,包括了2次DMA拷贝和1次CPU拷贝。那能不能把CPU的拷贝次数减少到0次呢?有的,即带有DMA手机拷贝功能的sendfile

五、sendfile+DMA scatter/gather实现的零拷贝

Linux2.4之后,对sendfile做了优化升级,引入SG-DMA技术,其实就是对DMA拷贝加入了scatter/gather操作,它可以直接从内核空间缓冲区中将数据读取到网卡。使用这个特点做零拷贝,还可以少一次CPU拷贝。

(一)上下文状态切换+数据拷贝

1.用户进程发起sendfile系统调用,上下文从用户态切换为内核态;

2.DMA控制器,把数据从硬盘中拷贝到内核缓冲区;

3.CPU把内核换乘功能区重点 文件描述信息(内核缓冲区的内存地址和偏移量)发送到socket缓冲区

4.DMA控制器根据文件描述信息,直接把数据从内核缓冲区拷贝到网卡

5.上下文从内核态奇幻回用户态,sendfile调用返回。

可以发现,sendfile+DMA scatter/gather实现的零拷贝,IO发生了2次用户空间与内核空间的上下文切换,以及2次数据拷贝。其中2次数据拷贝都是DMA拷贝,这就是真正的零拷贝技术,全程都没有通过CPU来搬运数据,所有的数据都是通过DMA来传输的。

参考:https://heapdump.cn/article/3290793

http://www.jinmujx.cn/news/116615.html

相关文章:

  • 河南省新闻出版学校湖南seo推广软件
  • 坪山网站建设资讯西安网站seo技术
  • 网站建设首选培训课程总结
  • 高端网站建设公司推荐百度服务中心人工24小时电话
  • 用什么建网站做网络推广有哪些平台
  • 广告标识标牌制作厂家网站seo在线优化
  • 做网站基本要求营销助手下载app下载
  • 金融企业网站源码推广方式怎么写
  • 网站推广的效果好宁波seo关键词优化
  • 网站新闻前置审批网站交易
  • 电子商务网站设计的三大原则专门看网站的浏览器
  • 怎样做58网站刷推广链接人数的软件
  • 济南冰河世纪网站建设seo培训机构
  • 安全狗iis 网站css无法访问企业网站营销的典型案例
  • 广州做韩国网站短视频推广渠道
  • 网站建设规划书毕业论文6000字最近中国新闻热点大事件
  • 网站怎么做流量指数运算公式大全
  • 网上服装定制网站必应站长平台
  • 邢台网站建设河南百度seo
  • 自己电脑怎么做网站服务器网络视频营销
  • 网站的设计方案在哪里免费行情软件网站下载大全
  • 网站 图片水印网络推广运营
  • 百度智能导航地图网站收录优化
  • 商贸网站源码南京网络优化培训
  • 临朐县网站建设深圳app推广平台
  • 怎么搭建php网站网页设计与制作
  • 网站中下滑菜单怎么做网络营销是做什么的
  • 婺源做网站企业营销策略分析论文
  • iis 提示网站到期网站收录平台
  • 陕西网站建站谷歌在线浏览入口