IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 高并发IO的底层原理 -> 正文阅读

[系统运维]高并发IO的底层原理

2.1IO 读写的基础原理

2.1.1内核缓冲区与进程缓冲区

我们平时的系统调用read其实只是将数据从内核缓冲区读取到进程缓冲区,而write系统调用也仅仅是从进程缓冲区写到内核缓冲区中,不直接与硬件交互,内核缓冲区通过linux内核操作系统层面来同步到硬件中

2.1.2详解典型的系统调用流程

read调用的时候,首先等待硬件将对应的数据传输到内核缓冲区,然后再将内核缓冲区的数据复制到进程缓冲区中

write调用的时候,首先是将进程缓冲区中的数据写到内核缓冲区中,操作系统再根据内核缓冲区中的量达到一定阈值时才会同步到硬件中

2.2四种主要的IO 模型

2.2.1 同步阻塞IO

比如read调用的时候需要等待数据从硬件传输到内核缓冲区,再从内核缓冲区复制到进程缓冲区中,此时才会停止阻塞状态,继续进入待运行状态

2.2.2 同步非阻塞io

比如read调用的时候,我们发下read调用,此时硬件把数据传输到内核缓冲区中,这段时间内,不会阻塞,而是直接返回,但是需要不断的轮询是否已经传输完毕,直至传输到内核缓冲区完毕后,就会进入阻塞状态,等待数据从内核缓冲区复制到进程缓冲区中线程才能继续执行

2.2.3 io多路复用模型

通过select/epoll 调用来实现硬件将数据传输到内核缓冲区这段时间内零等待,零轮询,调用了select/epoll之后直接返回,也不需要轮询,因为此时已经注册了读取事件,当操作系统监听到某个读取到内核缓冲区的操作完毕后就会主动通知对应的读取线程,线程再来等待数据从内核缓冲区复制到进程缓冲区中

以上三种模型都是同步io,因为都需要等待数据从内核缓冲区复制到进程缓冲区的过程

2.2.4 异步io模型

?只需要一开始调用系统调用的读取操作就能立即返回,由操作系统层面来完成数据从硬件传输到内核缓冲区,再从内核缓冲区复制到进程缓冲区中,再回调读取线程注册的方法让线程处理已经准备好的数据,真正实现零等待。不过现操作系统的支持还不够完善,所以主流的还是io多路复用

2.3 通过合理配置来支持百万级并发连接

? ? ? ? 通过配置操作系统的最大文件打开数完成设置

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:30:52  更:2022-05-08 08:32:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/4 17:27:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码