I/O缓冲
I/O缓冲(I/O Buffering)
在设备管理中,为了缓和CPU与I/O设备速度不匹配的矛盾,提高CPU与I/O设备的并行性、减少对CPU的中断频率,在I/O设备与处理机交换数据时都用到了缓冲区。
缓冲的种类包括:
单缓冲
输入时通道先将数据送入缓冲区,CPU从缓冲区取数据处理。通道再送入后续数据,如此反复直到输入完成。输出情形正好相反。由于缓冲区属于互斥区,所以单缓冲不能让CPU与通道同时访问同一缓冲区,对CPU与外部设备并行性的改善有限。
双缓冲
设置两个交替使用的缓冲区,CPU和通道可以分别访问两个缓冲区,即在CPU访问一个缓冲区的同时,通道可以访问另一个缓冲区。双缓冲可以用于实际系统中的操作,但计算机系统中的外围设备较多,另外双缓冲也很难匹配设备和处理机的处理速度。现代计算机系统一般使用多缓冲或缓冲池结构。
多缓冲
把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。常组织成循环队列的结构,也称为循环缓冲。
缓冲池
把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。
互动实验
搬运缓冲区中的数据
访问权限PRO
PRO EXCLUSIVE探索不止于此
尊享 Pro 权益解锁完整互动实验、进阶解析与精选参考答案。
知识测验
题目
双缓冲让CPU与通道并行工作的关键是什么?
知识测验
题目
缓冲池的特点是什么?
动手练习
跟踪缓冲区复用
在循环缓冲Lab中,填入三次、取出两次,再填入两次。画出每个阶段的四个槽位并记录Head/Tail。剩余数据按什么顺序取出?比较一个槽位被占用时,单缓冲和双缓冲的不同。