加入收藏 | 设为首页 | 会员中心 | 我要投稿 怀化站长网 (https://www.0745zz.cn/)- 语音技术、云资源管理、物联设备、云计算、决策智能!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

大数据时代我们都是透明人

发布时间:2021-01-29 10:46:16 所属栏目:外闻 来源:互联网
导读:应用进程向内核发起 I/O 请求后,如果kernel中的数据还没有准备好, 不再会阻塞等待结果,而是会立即返回。 从用户进程角度讲 ,它发起一个IO操作后,并不需要等待,而是马上就得到了一个结果。 用户进程判断结果是一个error时,它就知道数据还没有准备好,

应用进程向内核发起 I/O 请求后,如果kernel中的数据还没有准备好,不再会“阻塞”等待结果,而是会立即返回。

从用户进程角度讲 ,它发起一个IO操作后,并不需要等待,而是马上就得到了一个结果。

用户进程判断结果是一个error时,它就知道数据还没有准备好,于是它开始发起轮训操作。

直到kernel中的数据准备好了,一旦用户再轮训过来,就马上将数据拷贝到了用户内存,然后返回。

所以,在非阻塞式IO中,用户进程其实是需要不断地主动询问kernel数据准备好了没有。

“关键钥匙”分析:

非阻塞NIO模型相比于BIO的显著差异在于,在“数据等待”阶段,不再“阻塞”,立即返回。

但是在“数据拷贝”阶段,仍然是“阻塞”的。

虽然非阻塞模型避免了“数据等待”阶段的阻塞,但是,采用轮询方式,会导致系统上下文切换开销很大,会大幅度推高CPU 占用率。

因此,单独使用非阻塞 I/O 模型的效率并不高。而且随着并发量的提升,非阻塞 I/O 会存在严重的性能浪费。

我们可以看到,轮训的目的只是检测“数据是否已经就绪”,而操作系统提供了更为高效的检测接口,

例如select()多路复用模式,可以一次检测多个连接是否活跃。

2.3 多路复用IO

多路复用实现了一个线程处理多个 I/O 句柄的操作,有些地方也称这种IO方式为事件驱动IO(event driven IO)。

多路 指的是多个数据通道

复用 指的是使用一个或多个固定线程来处理每一个 Socket。

典型应用:

select、poll、epoll三种方案

Java NIO
 

其中,域名的值是 mobile-gtalk.l.google.com ,类型是 A,类是 1,生存时间是 5 秒,数据长度是 4 字节,资源数据表示的地址是 63.233.189.188。

SOA 记录

如果是权威 DNS 服务器的响应的话,会显示记录存储有关区域的重要信息,这种信息就是 SOA 记录。所有 的DNS 区域都需要一个 SOA 记录才能符合 IETF 标准。SOA 记录对于区域传输也很重要。

SOA 记录除具有 DNS 解析器响应的字段外,还具有一些额外的字段,如下

(编辑:怀化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读