
IO模型
- 用户空间与内核空间 1
1.1. 运行用户程序和系统程序的地方,用户程序通过系统调用接口调用系统资源 1
1.2. top 1
1.2.1. CPU耗时 1 - PIO与DMA 1
2.1. PIO 1
2.1.1. 数据通过CPU存储转发,从磁盘读取到内存中 1
2.2. DMA 1
2.2.1. 不经过CPU直接进行磁盘和内存(内核空间)的数据交换 1 - 缓存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 - IO访问方式 2
4.1. 磁盘IO 2
4.1.1. 数据:磁盘->内核缓存->用户缓存 2
4.2. 网络IO 2
4.2.1. 数据:磁盘->内核缓存->应用缓存->内核Socket缓存->网卡缓存 2 - 同步与异步 2
5.1. 同步IO 3
5.1.1. 触发IO操作后等待或轮询IO操作是否就绪 3
5.2. 异步IO 3
5.2.1. 触发IO

本文详细介绍了IO模型的各个方面,包括用户空间与内核空间的交互、PIO与DMA的区别、缓存IO与直接IO的优缺点,以及同步、异步、阻塞、非阻塞的概念。特别讨论了Reactor和Proactor模式,分析了它们在不同场景下的效率,并探讨了IO多路复用的实现机制如select、poll和epoll。
最低0.47元/天 解锁文章
1730

被折叠的 条评论
为什么被折叠?



