高并发IO的底层原理

b176e61bf22f391dd6f6a7711af77948.gif

作者 | 阿辉

来源 | Andy阿辉

思考:

作为程序员的我们,在编写软件进行文件读取,网络收发数据时,是不关心其具体的内部数据传输的。只关心把数据传输到缓冲区或及时从缓冲区读取数据。那么内部究竟是如何实现的呢,今天这篇文章就和大家一起学习了解下,希望对大家有帮助。

IO读写的基础

用户程序进行IO读写,依赖于底层的IO读写,都会调用底层的read/write两个系统调用。不同的操作系统其系统调用的名称不同。但是基本功能都是一样的。

首先在操作系统层面是有非常多的缓冲区的,比如进程缓冲区和内核缓冲区。

Read系统调用并不是直接从物理设备(硬盘)把数据读取到内存中的。Write系统调用也不是直接把内存中的数据写进物理设备。这两个调用方式都不直接和物理设备进行数据的传输。它们都在和内核缓冲区打交道。当进行Read系统调用时数据是从内核缓冲区被复制到线程缓冲区的,而当Write系统调用时,数据是从线程缓冲区被复制到内核缓冲区的。

那么朋友们读到这里是不是就有疑问,那么数据在内核缓冲区是如何实现数据的读写到物理设备上呢?这块就不是我们程序员朋友所关心的问题了,它是由操作系统内核来完成的。

可以这么理解:上层程序的IO操作,实际上不是物理设备级别的读写,而是缓存的复制。在我们平时的用户程序中,无论是Socket的IO、还是文件IO操作,都属于上层应用,它们的输入输出的处理,在编程流程上都是一致的。

内核缓冲区和进程缓冲区

缓冲区的目的:为了减少频繁地与设备之间的物理交换。

我们知道外部设备的读写在操作系统层面是需要不停的产生中断来实现的,而发生中断过程中,对于操作系统来说开销太大了。中断前,操作系统需要保存之前进程的数据和状态等信息,结束中断后,继而需要恢复之前的进程数据和状态等信息。之所以有了内核缓冲区就是为了减少这种底层系统的时间损耗,性能损耗。

操作系统内核对于内核缓冲区的使用是有一定的规则的。在操作系统层面,底层操作会对内核缓冲区进行监控,等待缓冲区到达一定数量的时候,在进行IO设备的中断处理,集中执行物理设备的实际IO操作。(这种机制在一定程度上提升了系统的性能)。

至于什么时候读写中断,是由操作系统内核决定的,用户程序不需要关心。

上层应用使用Read系统调用时,仅仅是把数据从内核缓冲区复制到上层应用的缓冲区(进程缓冲区),而当使用Write系统调用时,是把数据从进程缓冲区复制到内核缓冲区中。

baf7e66ba388af1179c7a40fa0a4675e.gif

往期推荐

如果让你来设计网络

Docker:从入门到实战过程全记录

浅述 Docker 的容器编排

如何在 Kubernetes Pod 内进行网络抓包

6363fd0758b1d55f37566fc7eeeb50b1.gif

点分享

cda8696789a66cce1568964558552349.gif

点收藏

f6568232b20add68f649497e3b0d4127.gif

点点赞

e7a0d582327cfdbc4c22285b2feb3dfb.gif

点在看

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

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

相关文章

新能源汽车太猛了,这些卡脖子技术你了解吗?

简介:从汽车行业的变化,我们即可初步看出芯片的重要性,那么,芯片对汽车行业的发展具体有哪些重要影响呢? 根据全球汽车咨询机构Auto Forecast Solutions统计的数据,截至10月10日,由于芯片短缺&…

龙蜥社区成立系统运维SIG,开源sysAK系统运维工具集

简介:系统运维SIG致力于打造一个集主机管理、配置部署、监控报警、异常诊断、安全审计等一系列功能的自动化运维平台。 OpenAnolis 龙蜥社区(以下简称“龙蜥社区”)正式成立系统运维(System Operation&Maintenance, sysOM&…

奔跑吧兄弟变成机器人是哪一期_奔跑吧预告,郑恺郭麒麟回归,而我却被女嘉宾的颜值吸引了...

哈喽小伙伴们,近期大家都看了《奔跑吧黄河篇》吗?现在已经播到第二期了,相信大家依旧是对跑男系列节目非常感兴趣的,播放量非常高,稳稳占据TX和AQY两大视频平台的综艺播放第一名的位置,可见网友们真的是非常…

院士专家热议如何拥抱“东数西算”,第二届中国IDC行业Discovery大会顺利召开

4月21日,一场别开生面的主题为“聚光奔赴”的数据中心行业大会圆满落下帷幕。由中国通信工业协会数据中心委员会指导,中国IDC圈与世纪互联共同主办的“2022年第二届中国IDC行业Discovery大会”在线上召开,会议聚焦国家“双碳”目标、“东数西…

一文理解 K8s 容器网络虚拟化

简介:本文需要读者熟悉 Ethernet(以太网)的基本原理和 Linux 系统的基本网络命令,以及 TCP/IP 协议族并了解传统的网络模型和协议包的流转原理。文中涉及到 Linux 内核的具体实现时,均以内核 v4.19.215 版本为准。 作者…

应对 Job 场景,Serverless 如何帮助企业便捷上云

简介:函数计算作为事件驱动的全托管计算服务,其执行模式天生就与这类 Job 场景非常契合,对上述痛点进行了全方面的支持,助力“任务”的无服务器上云。 作者:冯一博 任务(Jobs),是互…

Gartner发布新兴技术研究:深入洞悉元宇宙

供稿 | Gartner 出品 | CSDN云计算 根据Gartner预测,2026年全球30%的企业机构将拥有元宇宙产品和服务。 元宇宙是一个由独立但相互连接的网络所组成的持久、沉浸式数字环境,但目前尚未确定这些网络将使用的通信协议。元宇宙能够实现持久、去中心化、可…

双11实时物流订单实践

简介:随着双11的开启,物流业也迎来了年度大考。2021年双11期间,递四方作为物流仓储服务方,布局仓库和分拣点超40个,50w平米作业场地,单日订单峰值达千万级别,海量购物订单由递四方配送到家&…

阿里云徐立:面向容器和 Serverless Computing 的存储创新

简介:以上为大家分享了阿里云容器存储的技术创新,包括 DADI 镜像加速技术,为容器规模化启动奠定了很好的基础,ESSD 云盘提供极致性能,CNFS 容器网络文件系统提供极致的用户体验。 作者:徐立 云原生的创新…

鸿蒙2.0beta报名,鸿蒙OS 2.0 Beta版系统在哪报名-报名方法介绍

鸿蒙OS系统一直以来深受大家的关注,最近全新推出了鸿蒙OS 2.0 Beta版,那么鸿蒙OS 2.0 Beta版在哪报名呢?小编为大家分享一下关于鸿蒙OS 2.0 Beta版的报名方法介绍,对鸿蒙OS 2.0 Beta版感兴趣的不要错过了。鸿蒙OS 2.0 Beta版系统报…

不改一行代码,轻松拥有企业级微服务治理|MSE微服务治理专业版发布

简介:随着业务的发展,微服务拆分越来越复杂,微服务的治理也成了一个比较令人头疼的问题。有没有更加简单且高效的方法来解决微服务治理的难题? 作者:十眠 随着业务的发展,微服务拆分越来越复杂&#xff0…

曦智科技沈亦晨入选2022达沃斯世界经济论坛“全球青年领袖”

日前,达沃斯世界经济论坛公布了2022年“全球青年领袖”名单,曦智科技创始人兼首席执行官沈亦晨博士获选,他将与来自全球42个国家的其他109位青年领袖一起,加入到为期三年的领导力培训项目中,从不同领域为全球发展发挥更…

如何利用 “集群流控” 保障微服务的稳定性?

简介:应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品,以流量与容错为切入点,从流量控制、不稳定调用隔离、熔断降级、热点流量防护、系统自适应保护、集群流控等多个维度来帮…

阿里巴巴服务网格技术三位一体战略背后的思考与实践

简介:本文分享了阿里巴巴服务网格技术三位一体战略背后的思考和实践,关于阿里云服务网格 ASM 的一些产品功能,包括最近发布的一些功能。 作者:宗泉、宇曾 阿里巴巴三位一体战略 阿里云内部很早就提出了开源、自研、商业化三位一…

antd的tooltip如何调整间距_Word字符间距不会调?那就试试这些技巧

Word字符间距,你会调整吗?本期Word妹与大家分享4种字符间距调整技巧。1、取消数字或字母之间的距离数字或字母间距太大了主要是因为在全角状态下输入的,这时可以点击开始——字体——更改大小写——半角即可。2、取消汉字与英文字母之间的距离…

如何使用 Kubernetes 监测定位慢调用

简介:本次课程主要分为三大部分,首先将介绍慢调用的危害以及常见的原因;其次介绍慢调用的分析方法以及最佳实践;最后将通过几个案例来去演示一下慢调用的分析过程。 作者:李煌东 大家好,我是阿里云的李煌…

12个可能你没见过,但非常实用的 HTML 标签

作者 | 零一来源 | 前端印象今天给大家推荐几个冷门但非常实用的 HTML 标签&#xff0c;不只是语义化&#xff0c;它们都有自己的应用场景和特殊自带功能。一、center让你实现水平居中&#xff0c;用这个标签就对了&#xff0c;标签名也非常得语义化<center>零一</cen…

双11特刊 | 全面云原生化,数据库实例独共享混部 最高降低30%成本

简介&#xff1a;2021年双十一是阿里巴巴集团的核心应用全面云化的第二年。今年在保证稳定性的前提下&#xff0c;主要探索如何利用云原生的技术优势&#xff0c;降低成本&#xff0c;提升资源利用率。在今年大促中&#xff0c;针对核心集群采用独享共享实例混部&#xff0c;统…

IPv6时代,中小企业该如何布局?

简介&#xff1a;IPv6要为全世界的每一粒沙子都分配一个IP&#xff0c;你的企业跟上了吗&#xff1f; 11月中旬&#xff0c;中央网信办等部门联合印发了《关于开展IPv6技术创新和融合应用试点工作的通知》&#xff0c;联合组织开展IPv6技术创新和融合应用试点工作&#xff0c;…

Gartner 发布新兴技术研究:深入洞悉元宇宙

供稿 | Gartner出品 | CSDN云计算根据Gartner预测&#xff0c;2026年全球30%的企业机构将拥有元宇宙产品和服务。元宇宙是一个由独立但相互连接的网络所组成的持久、沉浸式数字环境&#xff0c;但目前尚未确定这些网络将使用的通信协议。元宇宙能够实现持久、去中心化、可互操作…