首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >其实 Linux IO 模型没那么难

其实 Linux IO 模型没那么难

作者头像
用户1263954
发布于 2022-02-17 15:37:50
发布于 2022-02-17 15:37:50
1K0
举报
文章被收录于专栏:IT技术精选文摘IT技术精选文摘

IO 其实就是 Input 和 Output,在操作系统中就对应数据流的输入与输出。这个数据流的两端,可以是文件,也可以是网络的一台主机。但无论是文件,还是网络主机,其传输都是类似的,我们今天就以源头为文件进行说明。

一个文件要从磁盘到我们的内存,需要经过很复杂的操作。首先,需要将数据从硬件读取出来,然后放入操作系统内核缓冲区,之后再将数据拷贝到程序缓冲区,最后应用程序才能读取到这个文件。简单地说,无论什么 IO 模型,其读取过程总会经历下面两个阶段:

  • 等待数据到达内核缓冲区
  • 从内核缓冲区拷贝数据到程序缓冲区

而我们 Linux 根据这两个阶段的是否阻塞,分成了 5 个经典的 IO 的模型,分别是:

  • 阻塞 IO 模型
  • 非阻塞 IO 模型
  • IO 复用模型
  • 信号驱动 IO 模型
  • 异步 IO 模型
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档