非淡泊无以明志,非宁静无以致远
全部博文(408)
分类:
2009-12-11 10:48:06
1.缓冲的引入
缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的I/O请求不能超过外设的处理能力。
在操作系统中,引入缓冲的主要原因,可归结为以下几点:
1) 改善CPU与I/O设备间速度不匹配的矛盾
例如一个程序,它时而进行长时间的计算而没有输出,时而又阵发性把输出送到打印机。由于打印机的速度跟不上CPU,而使得CPU长时间的等待。如果设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由打印机慢慢地输出。这时,CPU不必等待,可以继续执行程序。实现了CPU与I/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。众所周知,通常的程序都是时而计算,时而输出的。
2) 可以减少对CPU的中断频率,放宽对中断响应时间的限制
如果I/O操作每传送一个字节就要产生一次中断,那么设置了n个字节的缓冲区后,则可以等到缓冲区满才产生中断,这样中断次数就减少到1/n,而且中断响应的时间也可以相应的放宽。
3) 提高 CPU和 I/O设备之间的并行性
缓冲的引入可显著提高 CPU和设备的并行操作程度,提高系统的吞吐量和设备的利用率。
2.缓冲的实现方法:
根据I/O控制方式,缓冲的实现方法有两种:
一种是采用专用硬件缓冲器
一种是在内存划出一个具有n个单元的专用缓冲区,以便存放输入/输出的数据。内存缓冲区又称软件缓冲。
3.缓冲的种类
根据系统设置的缓冲器的个数,可把缓冲技术分为:
1) 单缓冲:在设备和处理机之间设置一个缓冲器。设备相处理机交换数据时,先把被交换数据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取定数据。由于缓冲器属于临界资源,即不允许多个进程同时对一个缓冲器操作,因此,尽管单缓冲能匹配设备相处理机的处理速度,但是,设备和设备之间不能通过单缓冲达到并行操作。
2) 双缓冲:解决两台外设、打印机和终端之间的并行操作问题的办法是设置双缓冲。有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器(区)、让打印机慢慢打印;然后,它又可以从另一个为终端设置的缓冲器(区)中读取所需要的输入数据。
3) 多缓冲:是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。
4) 缓冲池:把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。