计算机网络 | 五种I/O模型

这篇具有很好参考价值的文章主要介绍了计算机网络 | 五种I/O模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

计算机网络 | 五种I/O模型

欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。



专栏:《网络编程》


阻塞I/O

计算机网络 | 五种I/O模型

①当上层应用app1调用recv系统调用时,如果对等方没有发送数据(缓冲区没有数据),上层应用app1将阻塞(默认行为,被linux内核阻塞);
②当对等方发送了数据,linux内核recv端缓冲区,有数据后,内核会把数据copy给用户空间。然后上层应用app1解除阻塞,执行下一步操作。

非阻塞I/O

计算机网络 | 五种I/O模型

①上层应用程序app2将套接字设置成非阻塞模式。
②上层应用程序app2轮询调用recv函数,接受数据。若缓冲区没有数据,上层程序app2不会阻塞,recv返回值为-1,错误码是EWOULDBLOCK
③上层应用程序不断轮询有没有数据到来。会造成上层应用忙等待。大量消耗CPU。很少直接用。应用范围小,一般和selectIO复用配合使用。

I/O复用

计算机网络 | 五种I/O模型

①上层应用程序app3调用select机制(该机制有linux内核支持,避免了app3忙等待。),进行轮询文件描述符的状态变化。
②当select管理的文件描述符没有数据(或者状态没有变化时),上层应用程序app3也会阻塞。
③好处select机制可以管理多个文件描述符
select可以看成一个管理者,用select来管理多个IO。
一旦检测到的一个I/O或者多个IO,有我们感兴事件,发生,select函数将返回,返回值为检测到的事件个数。进而可以利用select相关api函数,操作具体事件。
⑤select函数可以设置等待时间,避免了上层应用程序app3,长期僵死。
⑥和阻塞IO模型相比,selectI/O复用模型相当于提前阻塞了。等到有数据到来时,再调用recv就不会发生阻塞。整个系统性(app和linux内核协议栈配合更好了)能优化、提供了。

信号驱动I/O

计算机网络 | 五种I/O模型

① 上层应用程序app4建立SIGIO信号处理程序。当缓冲区有数据到来,内核会发送信号告诉上层应用程序app4。
②上层应用程序app4接收到信号后,调用recv函数,因缓冲区有数据,recv函数一般不会阻塞。
③这种用于模型用的比较少,属于典型的“拉模式”。即:上层应用app4,需要调用recv函数把数据拉进来。

异步I/O

计算机网络 | 五种I/O模型

①上层应用程序app5调用aio_read函数,同时提交一个应用层的缓冲区buf;调用完毕后,不会阻塞。上层应用程序app5可以继续其他任务。
②当tcpip协议缓冲区有数据时,linux主动的把内核数据copy到用户空间。然后再给上层应用app5发送信号;告诉app5数据有了,赶快处理吧。
③典型的“推模式”。
④ 效率最高的一种形式,上层应用程序app5有异步处理的能力(在linux内核的支持下,言外之意:处理其他任务的同时,也可支持IO通讯)。

...

计算机网络 | 五种I/O模型
计算机网络 | 五种I/O模型文章来源地址https://www.toymoban.com/news/detail-462103.html


到了这里,关于计算机网络 | 五种I/O模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络奇缘】- 计算机网络|分层结构|ISO模型

    🌈个人主页:  Aileen_0v0 🔥系列专栏: 一见倾心,再见倾城  ---  计算机网络~ 💫个人格言:\\\"没有罗马,那就自己创造罗马~\\\"   目录 计算机网络分层结构 OSI参考模型  OSI模型起源 失败原因:                OSI模型组成   协议的作用 📝全文总结   OSI参考模型的由来 :在网络

    2024年02月04日
    浏览(48)
  • 【计算机网络】分层模型和应用协议

    1.1 五层网络模型 网络要解决的问题是: 两个程序之间如何交换数据 。 四层?五层?七层? 2.1 URL URL(uniform resource locator,统一资源定位符)用于定位网络服务 当协议是 http 端口为 80 时,端口可以省略 当协议是 https 端口为 443 时,端口可以省略 schema 、 domain 、 path 是必填

    2024年02月08日
    浏览(52)
  • 计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地

    2024年02月07日
    浏览(55)
  • 【网络奇缘】- 计算机网络|分层结构|深入学习ISO模型

    🌈个人主页:  Aileen_0v0 🔥系列专栏: 一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 回顾链接: 这篇文章是关于深入学习OSI模型七层结构, “书山有路勤为径,学海无涯苦作舟。” 话不多说,开始学习之旅⛵吧~   目录 OSI七层结构回顾

    2024年02月05日
    浏览(64)
  • 计算机网络模型、网络传输、封装分用的详细讲解

    在互联网诞生之前,人们通过发电报等方式进行通信,这种方式是非常不稳定的,通信链路容易被打断。由于战争时期需要更好的通信手段,此时就将原本两点之间简单的通信链路,扩展成复杂的链路,保证就算有一条链路被打断也能进行通信,就类似于我们现在的互联网。

    2023年04月13日
    浏览(42)
  • 【网络奇缘】- 计算机网络|分层结构|深入探索TCP/IP模型|5层参考模型

    ​ 🌈个人主页:  Aileen_0v0 🔥系列专栏:  一见倾心,再见倾城  ---  计算机网络~ 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\" 目录 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 面向连接三阶段(建立,传输,释放) 面向无连接(直传) 通用的5层参考

    2024年02月05日
    浏览(84)
  • 简单认识OSI(计算机网络分层)七层模型

            学校上课讲的太笼统啥也不是,自己学的太玄学似懂非懂突然在看到了一篇公众文文章。文章从初始到现在,步步为营的遇到一个解决一个前人的问题,有了细致入微的讲述,把之前学的死东西都连起来了。 如果让你来设计网络 https://mp.weixin.qq.com/s/jiPMUk6zUdOY6eKxAjN

    2024年02月06日
    浏览(264)
  • 深入了解OSI模型:计算机网络的七大层次

    目录 OSI模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 OSI模型是一个网络通信的概念模型,用于描述计算机网络中各个不同层次之间的通信和功能。它将网络通信分为七个不同的层次,每个层次负责不同的任务,使得网络通信的设计、开发和管理更加模块化和

    2024年02月07日
    浏览(39)
  • 计算机网络 | I/O模型、网络模型(OSI七层及TCP/IP四层)

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《网络编程》 ①当上层应用 app1 调用 r

    2024年02月07日
    浏览(45)
  • 计网笔记 01 概述 计算机网络体系结构、参考模型

    本文为计算机网络第一章:计网体系结构的相关知识点归纳,其中模型参考尤为重要。 1.1.1 概念 其中线路可以是逻辑连接,比如手机通过wifi和路由器相连。 1、信息传递 :比如一台电脑到另一台电脑之间传一个pdf 2、资源共享 :同一个计算机网络上的其他计算机可使用某台

    2024年02月03日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包