无锡网站程序北京设计公司招聘信息
news/
2025/9/29 21:32:44/
文章来源:
无锡网站程序,北京设计公司招聘信息,简洁大方的网站首页,ps是一款网页制作软件前言
在《Unix网络编程》一书中提到了五种IO模型#xff0c;分别是#xff1a;阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三种模型#xff0c;供大家参考学习。
一、什么是IO
计算机视角理解IO:
对于计…前言
在《Unix网络编程》一书中提到了五种IO模型分别是阻塞IO、非阻塞IO、IO复用、信号驱动IO以及异步IO。本篇文章主要介绍IO的基本概念以及阻塞IO、非阻塞IO、IO复用三种模型供大家参考学习。
一、什么是IO
计算机视角理解IO:
对于计算机而言任何涉及到计算机核心CPU和内存与其他设备间的数据转移的过程就是IO。IO对于计算机而言有两层意思: IO 设备:比如我们最常见的打印机、鼠标、键盘。 对IO设备的数据读写。
程序视角理解IO: 现代操作系统将空间划分为用户空间和内核空间。 用户空间:非内核应用程序则运行在用户空间。用户空间中的代码运行在较低的特权级别上不能直接访问内核空间和硬件设备。ChatGPT中文网站https://aigc.cxyquan.com 内核空间:操作系统的核心是操作系统工作的基础它负责管理系统的进程、内存、设备驱动程序、文件和网络系统决定着系统的性能和稳定性。 操作系统为了能够正常平稳地运行下去它是不会允许应用程序随意访问计算机硬件部分如内存、硬盘、网卡应用程序必须通过操作系统提供的API来访问以达到安全的访问控制。
总结:IO对于应用程序而言强调的是通过向内核发起系统调用完成对I/O的间接访问。
应用程序发起一次IO访问分为两个阶段: IO调用阶段应用程序向内核发起系统调用。 IO执行阶段内核执行IO操作并返回。 数据准备阶段内核等待IO设备准备好数据 数据拷贝阶段将数据从内核缓冲区拷贝到用户空间缓冲区 二、阻塞IO模型 阻塞I/O模型是最常见的IO模型其流程图如下所示。 应用程序发起一个系统调用recvform这个时候应用程序会一直阻塞下去直到内核把数据准备好并将其从内核复制到用户空间复制完成后返回成功提示这个时候应用程序才会继续处理数据。 优点:模型简单实现难度低适用于并发量较小的应用开发。 缺点:IO调用阶段和IO执行阶段都会阻塞。
典型的阻塞I/0模型的例子为datasocket.read()如果内核数据没有准备就绪Socket线程就会一直阻塞在read()中等待内核数据就绪。
生活场景:某天你跟你女朋友去奶茶店买奶茶点完奶茶后后由于你们不知道奶茶什么时候才能做好所以你们就只能一直等着其他什么事情也不能干。 三、非阻塞 IO模型 在非阻塞IO模型中应用进程需要不断询问内核数据是否就绪在内核数据还未就绪时应用进程还可以做其他事情。 从上图可以看出 非阻塞IO模型需要应用进程不断地主动询问内核数据是否已准备好了。 优点:模型简单实现难度低;与阻塞IO模型对比它在等待数据报的过程中进程并没有阻塞它可以做其他的事情。 缺点:轮询发送 recvform消耗CPU 资源。
生活场景:你和你女朋友去奶茶店买奶茶吸取了上一次的教训点完奶茶后顺便去逛了逛商场。由于你们担心会错过取餐所以你们就每隔一段时间就来问下服务员你们的奶茶做好了没有来来回回好多回若干次后终于问到奶茶已经准备好了然后你们就开心的喝了起来。
四、IO复用模型
非阻塞IO模型需要进程不断地轮询发起recvform系统调用就会有很多的线程不断调用recvfrom 请求数据先不说服务器能不能扛得住这么多线程就算扛得住那么很明显这种方式是不是太浪费资源了线程是我们操作系统的宝贵资源大量的线程用来去读取数据了那么就意味着能做其它事情的线程就会少。
例如:你是奶茶店的服务员每个人点好奶茶后每隔几分钟就来问你一次好了没有随着问的人越来越多你可能会开始怀疑人生。那么有没有什么好的解决办法呢?
答案:不需要所有进程轮询来发起recvform来查询数据是否已经准备好了而是有人帮忙来询问这个帮忙的人就是select。
IO复用模型如下所示: 多个进程的IO注册到一个复用器select上select 会监听所有注册进来的IO。如果内核的数据报没有准备好调用select 的进程将会被阻塞而当任一IO在内核缓冲区中有数据select调用就会返回可读条件然后进程再进行recvform系统调用内核将数据拷贝到用户空间注意这个过程是阻塞的。 注意:IO 复用模型在第一个阶段和第二个阶段其实都有阻塞第一个阶段阻塞于 select 调用第二个阶段阻塞于数据复制。 优点:适用于高并发应用程序。 缺点:模型复杂实现、开发难度较大。
生活场景:如果每个人都过一会就来问一下奶茶好了没有奶茶店的压力也太大了。于是奶茶店想到了一个办法找一个中间人(select)挡在奶茶店前面顾客(应用进程)询问那个中间人奶茶好了没有(对应多个进程的IO注册到一个复用器select上)如果没有好就让顾客等待(应用进程阻塞于 select 调用)。中间人持续查看顾客的奶茶是否准备好如果有一个人的奶茶准备好了就会去通知那个人可以取了(而当任一IO在内核缓冲区中有数据select调用就会返回可读条件然后进程再进行recvform系统调用)。 黑客网络安全如何学习
今天只要你给我的文章点赞我私藏的网安学习资料一样免费共享给你们来看看有哪些东西。
1.学习路线图 攻击和防守要学的东西也不少具体要学的东西我都写在了上面的路线图如果你能学完它们你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己录的网安视频教程上面路线图的每一个知识点我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等都是网络安全入门必知必会的学习内容。 都打包成一块的了不能一一展开总共300多集
因篇幅有限仅展示部分资料需要点击下方链接即可前往获取
CSDN大礼包《黑客网络安全入门进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点电子书也有200多本由于内容的敏感性我就不一一展示了。 因篇幅有限仅展示部分资料需要点击下方链接即可前往获取
CSDN大礼包《黑客网络安全入门进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包需要的话也可以拿走。
因篇幅有限仅展示部分资料需要点击下方链接即可前往获取
CSDN大礼包《黑客网络安全入门进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题如果你是要找网安方面的工作它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的如果大家有好的题目或者好的见解欢迎分享。
参考解析深信服官网、奇安信官网、Freebuf、csdn等
内容特点条理清晰含图像化表示更加易懂。
内容概要包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF… 因篇幅有限仅展示部分资料需要点击下方链接即可前往获取
CSDN大礼包《黑客网络安全入门进阶学习资源包》免费分享
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922264.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!