Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3976308
  • 博文数量: 408
  • 博客积分: 10227
  • 博客等级: 上将
  • 技术积分: 9820
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-17 21:48
个人简介

非淡泊无以明志,非宁静无以致远

文章存档

2022年(1)

2021年(1)

2020年(2)

2019年(5)

2018年(4)

2017年(3)

2016年(24)

2015年(8)

2014年(7)

2013年(3)

2012年(1)

2011年(23)

2010年(179)

2009年(147)

分类:

2009-12-11 10:48:06

 

1.缓冲的引入

缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的I/O请求不能超过外设的处理能力。

在操作系统中,引入缓冲的主要原因,可归结为以下几点:

1) 改善CPUI/O设备间速度不匹配的矛盾

例如一个程序,它时而进行长时间的计算而没有输出,时而又阵发性把输出送到打印机。由于打印机的速度跟不上CPU,而使得CPU长时间的等待。如果设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由打印机慢慢地输出。这时,CPU不必等待,可以继续执行程序。实现了CPUI/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。众所周知,通常的程序都是时而计算,时而输出的。

    2) 可以减少对CPU的中断频率,放宽对中断响应时间的限制

如果I/O操作每传送一个字节就要产生一次中断,那么设置了n个字节的缓冲区后,则可以等到缓冲区满才产生中断,这样中断次数就减少到1/n,而且中断响应的时间也可以相应的放宽。

    3) 提高 CPU IO设备之间的并行性

缓冲的引入可显著提高 CPU和设备的并行操作程度,提高系统的吞吐量和设备的利用率。

2.缓冲的实现方法:

 根据I/O控制方式,缓冲的实现方法有两种:

一种是采用专用硬件缓冲器

一种是在内存划出一个具有n个单元的专用缓冲区,以便存放输入/输出的数据。内存缓冲区又称软件缓冲。

3.缓冲的种类

 根据系统设置的缓冲器的个数,可把缓冲技术分为:

 1) 单缓冲:在设备和处理机之间设置一个缓冲器。设备相处理机交换数据时,先把被交换数据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取定数据。由于缓冲器属于临界资源,即不允许多个进程同时对一个缓冲器操作,因此,尽管单缓冲能匹配设备相处理机的处理速度,但是,设备和设备之间不能通过单缓冲达到并行操作。 

2) 双缓冲:解决两台外设、打印机和终端之间的并行操作问题的办法是设置双缓冲。有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器()、让打印机慢慢打印;然后,它又可以从另一个为终端设置的缓冲器()中读取所需要的输入数据。

3) 多缓冲:是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。

4) 缓冲池:把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。

 

阅读(2270) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~