计算机操作系统——设备管理(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
③工作方式
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
③工作方式
相关文章推荐
- Linux 学习笔记_11_1_Linux网络设置(上)
- 记录一次局域网突发网络环路处理过程——全是血泪 推荐
- 网络通讯之BSD Socket
- JavaScript实现http地址自动检测并添加URL链接
- 计算机网络概述
- 26高校毕业设计选题
- 401高校毕业设计选题
- 397高校毕业设计选题
- 39 4000 2高校毕业设计选题
- 411高校毕业设计选题
- 排序原理
- 黑马程序员_23_tcp和udp通信
- 如何在Windows下使用OpenGL 2.0的API(包括GLSL)http://sourceforge.net/projects/mesa3d/files/MesaLib/7.0.3/MesaLi
- 大话数据结构十八:图的存储结构之邻接矩阵
- 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室
- 与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态
- 一位计算机专业硕士毕业生的求职经历和感想[转载]
- 浅谈正则表达式
- Python网络爬虫4 ---- Linux下编写最简单的scrapy网络爬虫项目
- 高级UIKit-09(TCPSocket发送文件、上传和下载)