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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux服务器编程——浅谈同步IO与异步IO的区别 -> 正文阅读

[系统运维]Linux服务器编程——浅谈同步IO与异步IO的区别

0 前言

Linux网络编程中经常出现同步IO和异步IO这对概念。遗憾是的,在这之前我从没找到一个关于这两个概念的清晰定义和理解。今找到一点这方面的材料,特分享之。
在解释二者区别之前,先提出一个前置知识,也即同步IO和异步IO的场景:
在网络数据传输中,Linux内核进程将TCP/UDP等传输层协议传输来的数据首先存放在内核的内核空间(内核缓冲区)。用户应用进程根据需要或事件驱动,向内核空间发起IO请求,内核进程需要在内核空间(内核缓冲区)中完成数据IO的一系列准备工作(如果此时内核缓冲区中没有数据,内核进程需要等待),然后完成数据从内核空间到用户空间的转移。此即同步IO和异步IO的大前提。
在这里插入图片描述

1 同步IO

先解释同步IO。在Linux网络编程中,没有十分可用的异步IO接口,所以在Linux网络编程中,多用同步IO模型。
顾名思义,同步IO要求用户进程在向内核进程发起数据IO请求后,在内核进程读取内核缓冲区中的数据时(若此时内核缓冲区中没有数据,内核进程显然不能返回用户进程需要的数据),在这一过程中,用户进程需要等待,直到内核进程将数据返回给用户进程,然后用户进程才解除等待/阻塞。
这也是默认同步IO模式,也即同步IO阻塞模式。

1.1 同步IO阻塞

用户进程向内核进程发起IO请求后,需要等待内核进程完成一系列数据IO操作(甚至内核空间中没有数据,此时内核进程需要等待),等到内核进程将数据传送给用户进程,用户进程才能解除阻塞。

1.2 同步IO非阻塞

用户进程向内核线程发起IO请求后,如果内核空间中有数据,则内核线程"立即"将内核缓冲区中的数据发送给用户进程。在这个过程中用户进程不做等待。
如果内核空间中没有数据,则用户进程立即返回,不做等待,也即没有阻塞。

2 异步IO

异步IO充分利用DMA特性,用户进程向内核发起IO请求,由内核进程负责数据的IO处理,此时用户进程可以去处理别的事情(实际多为挂起)。等内核处理完之后(内核进程将数据主动推给用户进程)通过中断通知应用进程接收数据。
在这里插入图片描述

3 参考材料

https://www.bilibili.com/video/BV11b411q7zr?p=24

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:40:47-

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