一、缓冲技术的引入的主要目的:
1、改善CPU和I/O设备之间速度不匹配的矛盾
2、可以减少对CPU的中断频率,放宽对中断响应时间的限制
3、提高CPU和I/O设备之间的并行性
二、缓冲的实现方法:
根据I/O控制方式,缓冲的实现方法有两种:一种是采用专用硬件缓冲器,以专门的寄存器作为缓冲器;另一种是在操作系统的管理下,在内存划出一个具有n个单元的专用缓冲区,以便存放输入/输出的数据。内存缓冲区又称软件缓冲。软件缓冲的好处是易于改变缓冲区的大小和数量,缺点是占据一部分内存空间。
三、缓冲的种类:
1、单缓冲
是一种最简单的缓冲技术,操作系统在主存储器的系统区中只设立一个缓冲区。
假设一个用户进程要处理磁盘上的文件,先找到文件,然后把文件的第一块信息读到缓冲区,接着把缓冲区内容传到用户工作区。如果缓冲区已腾空则趁用户在处理信息时可把下一块信息预读到缓冲区,用户进程需要后继信息时就直接从缓冲区传送给它。如果缓冲区没有腾空则不能把信息读到缓冲区。
如图:从磁盘把一块数据直接传送到用户进程控件,假如所花费的时间为T,用户进程计算为C,从缓冲区数据到用户进程空间花费时间M.
无缓冲处理每批数据总时间:花费时间为T+C
单缓冲处理每批数据花费时间:max(T,C)+M,通常M<T,M<C。
缺点:一个缓冲区用于输入和输出,该缓冲区属于临界资源,无法实现设备之间的并行操作。
2、双缓冲
双缓冲技术利用两个缓冲区来完成输入输出操作工作。
双缓冲技术是先把信息预读到缓冲区1,在把缓冲区1的信息给用户进程的同时,可把用户需要的后继信息读入缓冲区2。
如下图:输入缓冲区1时间T,输入缓冲区2时间T,从缓冲区1传送给用户进程时间为M,从缓冲区2传送给用户进程时间为M,用户进程处理的时间为C。
采用双缓冲技术,当从缓冲区1传送给用户进程时,输入设备给缓冲区2传送信息,此时T和M的时间是重叠的,所以对每一批信息读/写处理花费时间为max((T-M),C)+M
双缓冲技术实现输入输出并行工作。
3、缓冲池
操作系统在主存中设置一组缓冲区。缓冲池中的各缓冲区是系统的公共资源,可供个进程共享,并由操作系统统一分配和管理。
设置缓冲池的目的是为了建超启动设备的次数,提高文件信息的传送速度。
空缓冲区:系统初始化时缓冲池中的各缓冲区都是未被使用的。这些缓冲区链接成空缓冲区队列。分配一个缓冲区时总是取空缓冲区队列中的第一个缓冲区;归还缓冲区时总是把它链入空缓冲区队列的队尾。
采用缓冲技术既能协调逻辑记录大小与物理块大小不一致的问题,又能缓解处理器与外围设备之间速度不匹配的矛盾。所以,在现代计算机系统中,常常在主存储器中辟出一些专用区域作为缓冲区,支持输入输出操作。