您的位置:首页 > 理论基础

计算机操作系统——设备管理(3)

2014-02-23 08:58 232 查看
缓冲管理
1、目的
为了缓和CPU与I/O 设备速度不匹配的矛盾,减少对CPU的中断频率,提高CPU和I/O 设备的并行性,在现代操作系统中,几乎所有的I/O 设备在与处理机交换数据时都用了缓冲区(内存中)。缓冲管理的主要职责是组织好这些缓冲区,并提供获得和释放缓冲区的手段。

2、实现方式
1)单缓冲



2)双缓冲





3)循环缓冲
可能出现的问题(瓶颈)
Nexti 指针追赶上Nextg 指针,这种情况被称为系统受计算限制。(很少)

Nextg 指针追赶上Nexti 指针,这种情况被称为系统受I/O 限制。(常见)



4)公用缓冲池
①组成:三种缓冲队列+四种缓冲区

三种缓冲队列

空缓冲队列emq;

输入队列inq;

输出队列outq;

四种缓冲区

用于收容输入数据的工作缓冲区hin;

用于提取输入数据的工作缓冲区sin;

用于收容输出数据的工作缓冲区hout;

用于提取输出数据的工作缓冲区sout;

②操作方法:为使诸进程能互斥地访问缓冲池队列,可为每一队列设置一个互斥信号量MS(type)。此外,为了保证诸进程同步地使用缓冲区,又为每个缓冲队列设置了一个资源信号量RS(type)。

Procedure Getbuf(type)

begin

Wait(RS(type));

Wait(MS(type));

B(number):=Takebuf(type);

Signal(MS(type));

end

Procedure Putbuf(type,number)

begin

Wait(MS(type));

Addbuf(type,number);

Signal(MS(type));

Signal(RS(type));

end

③工作方式

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: