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

无法解析您网站的域名.wordpress文章加载

无法解析您网站的域名.,wordpress文章加载,做网站费用入什么科目,做网站游戏需要什么对于一次IO访问(以read为例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,会经历两个阶段: 1、等待数据准…

 对于一次IO访问(以read为例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,会经历两个阶段:

  1、等待数据准备

        2、将数据从内核拷贝到进程中

linux系统产生了下面五种网络模式的方案

  1、阻塞IO(blocking IO)

  2、非阻塞IO(nonblocking IO)

  3、IO多路复用(IO multiplexing)

  4、信号驱动IO(signal driven IO)不常用

       5、异步IO (asynchronous IO)

1、阻塞IO(blocking IO)

     这种IO模型是同步的,在linux 中,默认情况下所有的socket都是blocking IO, 一个典型的读操作流程: 

 2、非阻塞IO(nonblocking IO)

非阻塞IO模型 只有是检查无数据的时候是非阻塞的在数据到达的时候依然要等待复制数据到用户空间,因此它还是同步IO

当用户线程发起一个read操作后,并不需要等待,而是马上就得到了一个结果。如果结果是一个error(errno == EAGAIN || EWOULDBLOCK)时,它就知道数据还没有准备好,于是它可以先做别的事情然后再次发送read操作。一旦内核中的数据准备好了,并且又再次收到了用户线程的请求,那么它马上就将数据拷贝到了用户线程,然后返回。

所以事实上,在非阻塞IO模型中,用户线程需要不断地询问内核数据是否就绪,也就说非阻塞IO不会交出CPU,而会一直占用CPU。

 

设置非阻塞常用方式:

方式一: 创建socket 时指定

int s = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, IPPROTO_TCP);

方式二: 在使用前通过如下方式设定

fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFL, 0) | O_NONBLOCK);

3、IO多路复用

当用户进程调用了select,那么整个进程就会被block,而同时,kernel会 “监视”所有select负责的socket,当任何一个socket中的数据准备好了,select就会返回。这个时候用户进程再调用read操作,将数据从kernel拷贝到用户进程。

所以,IO多路复用的特点是通过一种机制,一个进程能同时等待多个文件描述符,而这些文件描述符(套接字描述符)其中的任意一个进入就绪状态,select()函数就可以返回。

这里需要使用两个system call(select 和 recvfrom),而blocking IO只调用了一个system call(recvfrom)。但是,用select的优势在于它可以同时处理多个connection。

如果处理的连接数不是很高的话,使用select/epoll的web server不一定比使用mutil-threading + blocking IO的web server性能更好,可能延迟还更大。

select/epoll 的优势并不是对于单个连接能处理得更好,而是在于能同时处理更多的连接。

下面这幅图形象的说明了select/poll和epoll的区别。

select/poll

  • 委托内核进行操作
  • 只会通知有几个任务可用,但不知道具体哪几个任务,还需遍历

epoll

  • 委托内核进行操作
  • 会通知具体有哪几个任务可用

 关于根据的IO多路复用问题,将在另外的文章做详细的说明。

4、信号驱动IO

     使用信号驱动I/O时,当网络套接字可读后,内核通过发送SIGIO信号通知应用进程,于是应用可以开始读取数据。该方式并不是异步I/O,因为实际读取数据到应用进程缓存的工作仍然是由应用自己负责的。 

 

5、异步IO

当用户进程发起一个read操作后,内核收到该read操作后,首先它会立刻返回,所以不会对用户进程 阻塞,然后它会等待数据的准备完成,再把数据拷贝到用户内存,完成之后,它会给用户进程发送一个信号,告诉用户进程read操作已完成.

 

http://www.yayakq.cn/news/929585/

相关文章:

  • uniapp做网站广州做网站哪家好公司
  • 大型网站化方案东莞网络营销策划有限公司
  • 公司注册地址可以变更吗seo工作流程图
  • 建筑工程网站大全沧州网站建设优化
  • 惠州企业建站程序网站及网页设计费用
  • 网站推广与电话销售织梦系统网站首页空白
  • 海宁住房和城乡规划建设局网站怎么制作自己的二维码
  • 极客 pthyon 做网站口碑最好的旅游软件排名
  • 企业建设营销型网站有哪些步骤vs2008做网站教程
  • 做一个公司的门户网站多少钱wordpress 4.2.4中文
  • 中国做健身补剂的网站网站需备案吗
  • 公司使用威联通nas做网站存储网络营销策略都有哪些
  • 电商网站首页设计规范2022年上海进博会参展商
  • 西安学校网站建设价格网站设计建设公司服务商
  • 网站建设的基础条件湖北网站开发培训
  • 国内好的设计网站网站备案号
  • 西城专业网站建设公司wordpress顶部颜色改哪
  • 公司网站建设款计什么科目深圳专业企业网站建
  • 如何建设小网站社区做图网站
  • 房屋建设网站成都龙泉建设网站
  • 深圳网站优化企业网站开发与应用 论文
  • 免费网站申请域名39939cn电商平台都有哪些平台
  • 泰安有口碑的企业建站公司我爱深圳网站设计
  • 不会编程 做网站微信公众号网页版入口
  • 一个域名可以做多少个二级网站兼职网站编辑
  • 廊坊制作网站公司宿松网站建设推荐秒搜科技
  • 做博客网站的php代码网站开发费用是研发费用
  • 做电视的视频网站吗企业做网站优点
  • 成都网站seo服务手机开发小程序
  • 土耳其网站后缀网站 详细设计