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

济南网站开发公司排名邢台123生活最新帖子

济南网站开发公司排名,邢台123生活最新帖子,张雪峰不建议报的计算机,wordpress系统优化阻塞IO:一个IO请求操作,准备阶段和复制阶段都会阻塞应用程序,直到操作完全完成 非阻塞IO:一个IO操作请求,先判断准备阶段是否完成,如果未完成立即返回,否则,进入复制阶段&#xff0…

阻塞IO:一个IO请求操作,准备阶段和复制阶段都会阻塞应用程序,直到操作完全完成

非阻塞IO:一个IO操作请求,先判断准备阶段是否完成,如果未完成立即返回,否则,进入复制阶段,在这个复制阶段是阻塞的,直到操作完全完成

同步IO:同步IO包含阻塞IO和非阻塞IO,所以这里的同步指的是IO操作请求的完全完成。不论是阻塞还是非阻塞IO在复制阶段都是阻塞的。

异步IO:一个IO操作请求就立刻返回,直到准备阶段与复制阶段都完成了,内核才通知应用程序。这时候应用程序可以直接操作用户系统了

IO有两个阶段:数据准备+数据读写,这两个操作完成了一个完整的IO操作

IO=等待+拷贝

一、五种I/O模式

阻塞和非阻塞都是同步IO

1.阻塞式IO模式

我们默认情况下,所有套接字都是阻塞的。

输入操作流程通常包括两个不同阶段:

(1)等待数据准备好

(2)从内核向进程复制数据

        对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所有等待分组到达时,他被复制到内核中的缓冲区。第二步就是把数据从内核缓冲区复制到应用程序缓冲区。接下来以阻塞套接字的recvfrom的调用图来说明阻塞。

        在调用recvfrom一直到从recvfrom返回这段时间是阻塞的,当recvfrom正常返回时,我们的进程继续操作 。

2.非阻塞IO模型

        非阻塞的read,指的是在数据到达前,即数据还未到达网卡,或者到达网卡还没有拷贝到内核缓冲区之前,这个阶段是非阻塞的。当数据到达内核缓冲区,调用read函数仍然是阻塞的,需要等待数据从内核缓冲区拷贝到用户缓冲区,才能返回。

        开始对recvfrom三次调用,由于系统没有收到网络数据,所以内核马上返回EWOULDBLOCK的错误。当第四次调用recvfrom函数,一个数据报已经到了,内核将它拷贝到我们的应用程序的缓冲区中,然后recvfrom正常返回,我们就可以对接受到的数据进行处理。

3.I/O多路复用

        此模型用到select和poll函数,这两个函数也会使进程阻塞,select先阻塞,有活动套接字才返回,但是和阻塞I/O不同的是,这两个函数可以同时阻塞多个I/O操作,而且可以同时对多个读操作,多个写操作的I/O函数进行检测,直到有数据可读或可写(就是监听多个socket)。select被调用后,进程会被阻塞,内核监视所有select负责的socket,当有任何一个socket的数据准备好了,select就会返回套接字可读,调用recvfrom处理数据。

4.信号驱动I/O模式

SIGIO:文件描述符准备就绪,可以开始进行输入/输出操作

首先我们允许套机口进行信号驱动I/O,进程运行并且不阻塞,当数据准备好时,进程收到一个SIGIO信号,可以在信号处理函数中调用I/O操作函数处理数据。瞬间准备好读取时,内核就会为进程产生一个SIGIO信号,随后调用recvfrom读取数据报,并且通知主循环数据已经准备好待处理,也可以立即通知主循环,让它读取数据报。(免去了select的阻塞与轮询,当有活跃套接字时,由注册的handler处理

信号驱动I/O优势:

        用户进程在等待数据时,并不会被阻塞。

信号驱动I/O缺点:

  1. 在大量IO事件发生时,可能会由于处理不过来,而导致信号队列溢出
  2. 对于UDP来讲,信号驱动IO是有用的。可是,对于TCP来说由于区分信号成本问题,故不太适合
  3. 信号驱动IO可以说为异步,但是异步的又不彻底。在等待数据阶段是异步的,但是将数据从内核拷贝到用户空间,用户进程是阻塞的,同步的。

5.异步I/O模式

        工作模式:进程告诉内核启动某个操作,并让内核在整个操作(包括将数据从内核拷贝到用户空间)完成后通知我们。

参考:五种IO模型-CSDN博客 


文章转载自:

http://6K9vBIae.rwmft.cn
http://aE4uumid.rwmft.cn
http://y7xDtYou.rwmft.cn
http://xxYIqs2T.rwmft.cn
http://pa6pyozB.rwmft.cn
http://DvXFzOGF.rwmft.cn
http://OjMlgB0I.rwmft.cn
http://FJM51gfb.rwmft.cn
http://HGpHeziC.rwmft.cn
http://1eHBMH0s.rwmft.cn
http://grZxTfaP.rwmft.cn
http://pfdteyy9.rwmft.cn
http://Uu5yKXwV.rwmft.cn
http://zf94BL2r.rwmft.cn
http://hjRpGGlS.rwmft.cn
http://oA4D3sYI.rwmft.cn
http://Lrfi7n5t.rwmft.cn
http://hgsbwmyy.rwmft.cn
http://PSZrRTEA.rwmft.cn
http://50MUrbkj.rwmft.cn
http://P3oO0lyN.rwmft.cn
http://gL7TnHkx.rwmft.cn
http://mF7n1YvT.rwmft.cn
http://YsRoEPZH.rwmft.cn
http://gT9WooxI.rwmft.cn
http://tiLN8g8W.rwmft.cn
http://rqdv8tlu.rwmft.cn
http://HxQNCDNA.rwmft.cn
http://Gd6iH6u9.rwmft.cn
http://8n2EfUvo.rwmft.cn
http://www.dtcms.com/wzjs/731067.html

相关文章:

  • wordpress背景自动变幻图形seo站长网怎么下载
  • 网站开发树形图重庆网站建设专家
  • 千万别去电商公司上班做seo推广网站在线咨询
  • 青岛网站建设多少钱重庆渝中区企业网站建设公司
  • 怎么.做网站镇江做网站需要多少钱
  • wordpress网站是什么意思宣传软文模板
  • 电商平台网站开发做视频搬运哪个网站最赚钱
  • 搜索引擎是网站吗wordpress怎么添加描述和关键词
  • 邯郸市教育考试院网站新遵义
  • 旅游网站建设的经济评价wordpress代码板插件
  • 百度做网站怎么样wordpress添加追番
  • 爱站长尾关键词挖掘工具[wordpress
  • 手机在线制作表白网站郑州网站制作的公司哪家好
  • 中小网站建设都有哪些注册深圳公司有什么好处
  • 网站虚拟主机内存不足能不能链接企业没有做网站有的坏处
  • 南昌英文网站建设电子商务与网站建设
  • 网站设计与开发范本wordpress模板在哪
  • 湖南省建设监理协会网站钢格板保定网站建设
  • 徐州网站建设网络推广做网站排名费用多少钱
  • 宝安做网站怎么样wordpress支持什么语言
  • 各种网站建设报价建立网站怎么申请
  • 手机企业网站建设开发中国网络平台排名前十
  • 怎样设置一个属于自己的网站做网站常用的套件
  • 做宣传语的网站简洁大气企业网站
  • 福田做棋牌网站建设成都网站排名 生客seo
  • 店铺设计网站推荐滨州网站设计
  • 有什么做的好的ppt排版网站网站建设还能赚钱吗
  • 做网站要哪些技术桓台县网站建设
  • 贵阳网站建设制作价格网站推广是网站建设完成之后的长期工作
  • 上传网站到虚拟主机华为手机开发者模式怎么关闭