8.缓冲区管理

第五章 I/O管理

缓冲区管理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

双缓冲区:T<C+M

假设初始状态缓冲区1满,缓冲区2空,工作区为空。

刚开始缓冲区2为空,所以设备可以向缓冲区2中冲入数据耗时T,另一方面刚开始缓冲区1中是满的,所以刚开始就可以把缓冲区1中的数据传送到工作区中,M时刻工作区被充满,CPU就开始处理数据耗时C,处理完工作区中的数据后此时缓冲区2中已经充满了数据,因此可以接着把缓冲区2中的数据传送到工作区中,接着继续处理工作区中的数据。在T时刻缓冲区2已经充满,设备开始空闲,并且此时缓冲区1中的数据在M时刻就已经被取空了,因此缓冲区2的数据被充满之后设备就可以接着往缓冲区1中冲入数据耗时T,假设在2T缓冲区2中的数据还没有完全被取走(即假设2T<2M+C),所在在2T时刻虽然设备空闲,但是由于缓冲区2此时还没有被取空,而缓冲区1刚刚被充满,因此在这个时刻设备并不能接着往缓冲区2中充入下一块数据,只有缓冲区2中的数据被取空之后,设备才可以继续往缓冲区2中写入下一块的数据。可以发现如果采用双缓冲区并且T<C+M,很难找到一个和初始状态一模一样的状态,比如T时刻,虽然其中缓冲区2是满的,但此时工作区中的数据还没有全部被处理完,因此工作区又不是空的,这和刚开始的初始状态是不一样的,M+C时刻虽然工作区是空的,但是缓冲区2中的数据是满的,并且缓冲区1当中也充入了一部分数据,即M+C时刻工作区空,一个缓冲区满,但另一个缓冲区是半满的,所以如果T<C+M那么课本中介绍的方法就不易分析出来了。但是自己用甘特图的方法多分析几步就可以发现每经过M+C这么长的时间就会有一块数据被处理完毕,因此当T<C+M的时候每处理一个数据块平均耗时应该是C+M。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值