IO模型图解

本文详细介绍了IO模型的各个方面,包括用户空间与内核空间的交互、PIO与DMA的区别、缓存IO与直接IO的优缺点,以及同步、异步、阻塞、非阻塞的概念。特别讨论了Reactor和Proactor模式,分析了它们在不同场景下的效率,并探讨了IO多路复用的实现机制如select、poll和epoll。
摘要由CSDN通过智能技术生成

详情见图

在这里插入图片描述
IO模型

  1. 用户空间与内核空间 1
    1.1. 运行用户程序和系统程序的地方,用户程序通过系统调用接口调用系统资源 1
    1.2. top 1
    1.2.1. CPU耗时 1
  2. PIO与DMA 1
    2.1. PIO 1
    2.1.1. 数据通过CPU存储转发,从磁盘读取到内存中 1
    2.2. DMA 1
    2.2.1. 不经过CPU直接进行磁盘和内存(内核空间)的数据交换 1
  3. 缓存IO与直接IO 1
    3.1. 缓存IO(标准IO) 1
    3.1.1. 数据:磁盘->DMA copy到内核空间->CPU copy 到用户空间 1
    3.1.2. 读操作 2
    3.1.3. 写操作 2
    3.1.4. 优点 2
    3.1.5. 缺点 2
    3.2. 直接IO 2
    3.2.1. 数据:磁盘 <-> 用户空间 2
    3.2.2. 减少数据复制,多用于数据库管理系统 2
    3.2.3. 数据从磁盘加载,加载缓慢 2
    3.2.4. open系统调用使用参数O_DIRECT 2
  4. IO访问方式 2
    4.1. 磁盘IO 2
    4.1.1. 数据:磁盘->内核缓存->用户缓存 2
    4.2. 网络IO 2
    4.2.1. 数据:磁盘->内核缓存->应用缓存-&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值