# IO模型

news2024/12/25 22:33:44

IO模型

非阻塞IO

当程序读取硬件数据时,不管硬件数据是否准备好,read()函数不会阻塞,会继续向下执行

程序会不停监测IO事件是否产生,CPU消耗率高

防止进程阻塞在IO函数上,如果要获得有效数据,需要轮循

阻塞IO

当程序读取硬件数据时,如果硬件数据没有准备好,进程会阻塞在read()函数位置,等待硬件数据准备就绪,通过read()函数读取硬件数据后,程序才会向下执行

分为:不可中断休眠状态(D)和可中断休眠状态(S)

常用、简单、效率低,常用于read、write等函数

IO多路复用

需要在一个进程中同时监听多个硬件的数据,使用IO多路复用,IO多路复用实现机制:select、poll、epoll

使用:在用户空间中将监听的事件的文件描述符添加到事件集合中,调用函数进行判断集合中文件描述符对应的硬件数据是否准备就绪,如果没有,则将进程切换到休眠状态(可中断休眠状态);如果有一个或多个硬件数据准备就绪,则将休眠的进程唤醒,对准备就绪的硬件数据进行读写

情景:在使用单进程单线程的情况下,同时处理多个输入输出请求

优点:由于不需要创建新进程和线程,减少了系统的资源开销,减少上下文切换的次数

select:阻塞函数,内核检测指定文件描述符集合中,是否有文件描述符准备就绪

​ 当文件描述符准备就绪后,该函数解除阻塞

​ 当事件产生后,集合中会只剩下触发事件的文件描述符

poll:阻塞函数,内核检测指定文件描述符集合中,是否有文件描述符准备就绪

​ 当文件描述符准备就绪后,该函数解除阻塞

epoll:epoll树、文件描述符表、epoll_create、epoll_ctl、epoll_wait

区别:select:监听的文件描述符有上限,Linux中默认为1024个,每次都需要遍历整个文件描述符集合

​ poll:监听的文件描述符无上限,每次都需要遍历整个文件描述符集合

​ epoll:监听的文件描述符无上限,可以快速定位就绪的文件描述符,有效避免了遍历过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如果要走网络安全这方面,需要考哪些证呢?

网络工程师VS网络安全工程师,哪个能带你走上人生巅峰? 众所周知,网络安全是以技术为核心的行业,年薪的多少是和技术挂钩的,但是很多没有工作经验的或者想转行到网安的大学生想要找到一份好工作,一个含金量…

Unity 灯光组件Light

灯光简介 在 Hierarchy 窗口右键,选择 Light,再选择具体的灯光类型,在 Inspector 窗口查看灯光组件如下: Type:灯光类型,主要有:Directional(平行光)、Spot(聚…

【OpenStack】初识

云计算中的操作系统,负责计算能力 三大核心组件:子项目nova负责计算能力、neutron(Quantum):Networking网络、Swift:Storage 存储 共享服务:认证服务、数据库服务等 api、dashboard浏览器界面 主要组件: 1. 2. OpenSt…

uniapp在H5获取当前定位信息不需要SDK可直接获取城市(包括经纬度省市区和市区编码)

前言 最近在做获取用户当前定位信息的时候,发现uniapp官方提供的uni.getLocation(OBJECT)兼容性并不是特别好,光注意事项都是密密麻麻一大堆,在实际使用场景下,效果并不理想,也不是很稳定。于是便重新封装了一下腾讯地…

前端web入门-CSS-day03

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 CSS 初体验 CSS 定义 CSS 引入方式 选择器 标签选择器 类选择器 id选择器 通配符选择器 画盒子 …

“智慧赋能 强链塑链”——浅谈核电行业物资供应管理优化新动能

核电备件供应链管理创新的必要性、 迫切性和重要性 核电厂对核电机组的稳定运行和核安全有着非常高的要求,在我国核电发展初期阶段,核电厂为了提高机组的安全稳定运行,通常都备有种类多、数量大的备品备件。经过多年的运营,现役…

华为、思科、Juniper 三厂商NAT配置详解

大家好,这里是网络技术联盟站。 本文给大家介绍华为、思科、Juniper 三大厂商NAT配置详解。 1. 华为(Huawei) 华为是一家全球领先的信息与通信技术解决方案供应商,其网络设备提供了强大的NAT功能。 下面是华为设备上的NAT配置示…

C语言——自定义数据类型

C语言自定义数据类型——结构体、共用体、枚举 目录 一、 结构体的基本用法1.1 定义1.2 定义格式1.3 结构体变量1.3.1 概念1.3.2 格式1.3.3 定义结构体变量(1) 先定义结构体,再定义结构体变量。(2) 定义结构体的同时,定义结构体变量。 1.3.4 结构体变量…

L1L2,范数损失

目录 1. L2范数(欧氏距离)2. L2范数损失,这个听的/用的少一些3-1. L2损失(均方误差)3-2. L1损失(平均绝对误差)4. L1范数L2范数在机器学习方面的区别5. 为什么L2范数可以防止过拟合? 1. L2范数…

函数式接口入门简介

这里写目录标题 引子四种函数式接口-简单Demo四种函数式接口介绍函数式接口实战-代码对比 引子 只包含一个抽象方法的接口,就称为函数式接口。来源:java.util.function 我想在方法内直接定义方法直接获得结果,主要是也是为了配置lambda表达…

斐波那契数列数列相关简化2

看这篇文章前先看一下第一篇文章: 斐波那契数列数列相关简化1_鱼跃鹰飞的博客-CSDN博客 根据第一篇文章总结如下: 如果某个递归,除了初始项之外,具有如下的形式 F(N) C1 * F(N) C2 * F(N-1) … Ck * F(N-k) ( C1…Ck 和k都…

泛微 E-Office文件上传漏洞复现(CVE-2023-2523、CVE-2023-2648)

0x01 产品简介 泛微E-Office是一款标准化的协同 OA 办公软件,泛微协同办公产品系列成员之一,实行通用化产品设计,充分贴合企业管理需求,本着简洁易用、高效智能的原则,为企业快速打造移动化、无纸化、数字化的办公平台。 0x02 漏…

科普拓视野,逐梦新未来——人工智能研学工作坊

随着科技的发展,人工智能逐渐成为世界热门技术之一,为更好启发服务对象想象力,增强其创新精神和实践能力,让服务对象深入感受科技的发展与魅力,2023年5月20日,在阳泉市未成年人救助保护中心的支持下&#x…

如何使用WordPress作为文档管理和文件管理

您想使用 WordPress 来管理您的文件和文档吗? 您可能有需要与团队其他成员共享的电子表格、图像和其他文档。通过将这些文件上传到 WordPress,您可以轻松地与其他人协作,或者只是将这些文档放在 WordPress 仪表板上,以便轻松访问…

从菜鸟到专家,网络安全工程师必备证书有哪些?

网络空间的竞争,归根结底是人才的竞争。 在2022年网络安全周上,《网络安全人才实战能力白皮书》正式发布。数据显示,到2027年,我国网络安全人员缺口将达327万,而高校人才培养规模仅为3万/年。 那么,如果你…

8.1.0版本ELK搭建,开启xpack认证机制

8.1.0版本ELK搭建,开启xpack认证机制 部署环境安排下载elk安装包服务器环境配置部署elasticsearch配置认证配置客户端加密的http通信修改elastic配置文件 部署kibana部署logstash部署httpd,filebeat配置kibana页面部署grafana配置grafana连接elastic 部署…

C++中的多态,以及多态的实现、以及实现多态的两个特例。

一、 多态是什么? 通俗点说,就是多种形态。具体点就是不同对象完成某种事情,会产生不一样的状态。 举个例子:就好比:买票的时候,普通人、学生、军人等等,他们买票有不同的结果,普通人…

从零搭建完整python自动化测试框架(UI自动化和接口自动化 )

目录 一、总体框架 二、PO模式、DDT数据驱动、关键字驱动 三、框架技术选择 四、框架运行结果 五、各用例对应的定义方式(PO/DDT) 六、API接口定义方式 七、测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 …

前两天面了个腾讯28K来的,让我见识到了测试界的天花板

马上又是一年毕业季了,那么去年那一批毕业的应届生怎么样了? 2022年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最…

数据结构(C语言):一元多项式的操作(链表实现)

一、题目 一元多项式的操作 设有两个一元多项式: p(x)p0p1xp2x2pnxn q(x)q0q1xq2x2qmxm 多项式项的系数为实数,指数为整数,设计实现一元多项式操作的程序: ① 多项式链表建立:以(系数,指数…