软考-软件设计:操作系统-设备管理-单双缓冲区计算

单缓冲区

  • 因为只有一个 缓冲区,输入 和 传送 是 串行。如果 并行,当 传送 时,又开始 输入,会导致 缓冲区 的数据被 覆盖

  • 传送 和 处理 是 并行

双缓冲区

  • 因为有2个 缓冲区,输入 和 传送 是 并行。即:当 传送 时,又开始 输入,由于有2个缓冲区,不会 导致 缓冲区 的数据被 覆盖

  • 传送 和 处理 是 并行

题

此时输入时间 T 为 10us,传送时间 M 为 6us,处理时间 C 为 2us 。若要将 10 个磁盘块送入缓冲区处理,请问 单缓冲区 和 双缓冲区 花费时间各为多少us?

分析

使用 流水线时间计算公式:

取指时间 + 分析时间 + 执行时间   +   ( n - 1 ) * 流水线周期

详见:
https://www.malaoshi.top/show_1GWs2WrSUnR.html

单缓冲区

由上面可知:

  • 因为只有一个 缓冲区,输入 和 传送 是 串行,所以计算时,将 输入 和 传送 按一个整体算,即:10us + 6us

  • 传送 和 处理 是 并行

所以 流水线周期 是 10us + 6us = 10us

套入上面公式:

(10us + 6us) + 2us + (10 - 1) * (10us + 6us) = 162us

双缓冲区

由上面可知:输入 和 传送、处理 是 并行

所以 流水线周期 是 10us

套入上面公式:

10us + 6us + 2us + (10 - 1) * 10us = 108us

原文出处:/show_1GWs5FB6FhJ.html