本文共 1016 字,大约阅读时间需要 3 分钟。
对于循环缓冲区和缓冲池有个印象即可
重点: 1、单缓冲的结论 2、双缓冲的结论
缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。
使用硬件
作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器 管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放 页表项的副本) 一般情况下,更多的是利用内存
作为缓冲区,“设备独立性软件”的缓冲区管理就是要组织管理 好这些缓冲区 假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)。
注意
:当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。 常考题型:计算每处理一块数据平均需要多久?
技巧:假定一个初始状态,分析下次到达相同状态需要多少时间,这就是处理一块数据平均所需时间。
在“单缓冲”题型中,可以假设初始状态为工作区满,缓冲区空。
采用单缓冲策略,处理一块数据平均耗时 Max(C, T)+M
假设某用户进程请求某种块设备读入若干块的数据。若采用双缓冲的策略,操作系统会在主存中为其分配两个缓冲区(若题目中没有特别说明,一个缓冲区的大小就是一个块)
双缓冲题目中,假设初始状态为:工作区空,其中一个缓冲区满,另一个缓冲区空
采用双缓冲策略,处理一个数据块的平均耗时为 Max (T, C+M)
缓冲池由系统中共用的缓冲区组成。这些缓冲区按使用状况可以分为:空缓冲队列、装满输入数
据的缓冲队列(输入队列)、装满输出数据的缓冲队列(输出队列)。另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输入
数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓 冲区(hout)、用于提取输出数据的工作缓冲区(sout)①输入进程请求输入数据
②计算进程想要取得一块输入数据 ③计算进程想要将准备好的数据冲入缓冲区 ④输出进程请求输出数据转载地址:http://fzmzi.baihongyu.com/