操作系统 第8章幻灯片.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用户进程 输入时间T 移动时间M 计算时间C ┇ 设备输入: 缓冲区: 拷贝到用户区: 用户区数据: 用户进程计算: 空 满 ··· t T=C M 图8.16单缓冲下处理数据块 满 满 满 ? 空 结束 对于TC,CT ? 8.5.2 单缓冲 单缓冲下设备并行问题: 单缓冲属于临界资源,不允许多个进程同时对一个缓冲区操作,故设备之间不能达到并行操作。 进一步说明;假定输入到缓冲块数据被立即打印出去,此时C 为打印一个数据块时间,并且仍假定 T=C,即输入的速度=输出的速度。这时输入与输出是串行操作的,即输入一个块数据时,输出等待,反之亦然。为使设备之间能够并行操作,就必须引入双缓冲。 8.5 缓冲技术 8.5.2 单缓冲 8.5.3 双缓冲 解决两台外设之间,I/O与计算之间并行操作问题是设置双缓冲,如图8.15(c)。 假定输入输出设备速度相同都需T 时间,如下图。 缓冲区1: 缓冲区2: 设备输入 设备输出 输入数据 输出数据 输入数据 t 输入数据 输出数据 T ··· 图8.17 (a)输入、输出并行操作 ? 结束 8.5.3 双缓冲 对于图8.16中的问题(输入、复制和计算),有两个缓冲区时: CPU将输入到一个缓冲区的数据取走的同时,输入设备可向另一个缓冲区输入数据。 CPU在计算时,输入设备也可以进行输入; 假定设备输入一块数据块时间T=2C+M,即输入数据的时间大于CPU计算时间,有 TC,处理一块数据平均时间为 max( T,C )。这时表明CPU存在等待设备,8.17(b)阴影部分;反之,若C T,则存在设备等待CPU。 8.5 缓冲技术 图8.17 双缓冲区的情况(b)输入、复制和计算 空 空 计算 缓冲区1: 缓冲区2: 传送数据: 用户区计算: 输入数据 计算 输入数据 输入数据 设备输入: t M T=2C+M C ··· ? 结束 闲 闲 显然,对于块数据的输入,复制,计算的处理为T=Max(T,C) 8.5.3 双缓冲 下一步 下一步 双缓冲分析: 双缓冲只是说明设备之间、CPU和设备并行操作简单模型,不能用于实际并行操作,有两个原因: 计算机系统中外围设备较多,各设备差异很大,双缓冲下设备间完全并行操作很难实现,可存在并行,但很不完全。图8.17(a)仅是理想情况。 CPU速度远高于外设,尤其出现阵发性I/O操作,使得CPU与设备间并行难以实现,因而,双缓冲情况下匹配设备和CPU速度受到制约。现代系统中一般使用多缓冲的循环缓冲或缓冲池结构。 8.5 缓冲技术 8.5.3 双缓冲 8.5.4 循环缓冲 可利用多缓冲来平滑计算与输入输出设备、输入设备与输出设备并行双方之间的数据流。多缓冲通常组织成循环缓冲的形式,如图 8.15(d)所示。 由图8.15(d)加以放大,可以有图8.18。通常多个缓冲的大小相同。 多缓冲组成 ┇ 8.15 (d)循环缓冲 I/O设备 进入 移动到 8.5 缓冲技术 E E C F F F Next-E Next-F Current-F 图8.18 循环缓冲 1 2 3 4 5 6 E E F F F F Next-E Next-F 1 2 3 4 5 6 (a) (b) 对用于输入的多缓冲分成三种类型,并有三个指针: 空缓冲区E;Next-E 指示进程下一个可用缓冲区E 满缓冲区 F;Next-F 指示进程下一个可用缓冲区F 工作缓冲区 C;Current指示进程正在使用缓冲区 8.5.4 循环缓冲 E→空 F→满 进程可利用申请和释放两个过程使用循环缓冲区: 多缓冲的使用与同步 申请一个缓冲区;对于计算进程,申请由Next-F指示缓冲区F供计算使用提取数据(复制到进程区),且作为当前工作缓冲区,Next-F指针后移一个缓冲区。同理对于Next-E。 释放一个缓冲区;对于计算进程,释放已提取完数据缓冲区(由C改成E)。对于输入进程来说,已向当前空缓冲区输入完数据,应释放并将其改成缓冲区F。 8.5 缓冲技术 8.5.4 循环缓冲 输入与计算并行操作中,应考虑两种同步情况: Next-E 追上 Next-F;意味输入进程输入数据速度大于计算进程处理数据速度,已将全部缓冲区装满。这时阻塞输入进程,这种情况称为系统受计算限制。 Next-F追上Next-E;计算进程处理数据的速度大于输入进程的速度。这种情况称为系统受输入限制。 8.5 缓冲技术 8.5.4 循环缓冲 多缓冲的使用与同步 并行的一方速度超出了另一方不断工作所能完成的

文档评论(0)

love87421 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档