【问题标题】:What fraction of the CPU time is wasted ? (Modern Operating Systems, 4th ed)浪费了多少 CPU 时间? (现代操作系统,第 4 版)
【发布时间】:2021-07-09 10:45:42
【问题描述】:

这是我在这里的第一篇文章。 我目前正在学习现代操作系统,但我被困在这个问题上:计算机系统有足够的空间在其主存储器中容纳五个程序。这些程序有一半时间空闲等待 I/O。浪费了多少 CPU 时间? 答案是 1/32,但为什么呢?

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    答案是 1/32,但为什么呢?

    这些程序有一半时间是空闲等待 I/O”这句话是模棱两可的。让我们看看这句话的几种不同解释方式,看看它们是否符合预期的答案:

    a) “5 个程序中的每一个都花费 50% 的总时间等待 IO”。在这种情况下,当一个程序正在等待 IO 时,CPU 可能正在被其他程序使用;并且所有程序组合起来可以使用 100% 的 CPU 时间而不会浪费时间。实际上,您只需 2 个程序就可以使用 100% 的 CPU 时间(第一个程序使用 CPU,而第二个程序等待 IO,然后第二个程序使用 CPU,而第一个任务等待 IO,然后...)。这不可能是“这些程序空闲等待 I/O 一半时间”的预期含义,因为答案(可能浪费了零 CPU 时间)与预期答案不匹配。

    b) “所有程序同时空闲等待 I/O,有一半时间”。这不可能是问题的预期含义,因为答案显然是“浪费了 50% 的 CPU 时间”并且与预期的答案不符。

    c) “每个程序花费一半的可用时间等待 IO”。在这种情况下,第一个程序有 100% 的可用 CPU 时间,但有 50% 的时间使用 CPU,另外 50% 的时间等待 IO,剩下 50% 的 CPU 时间可用于下一个程序;然后第二个程序使用剩余 CPU 时间的 50%(总时间的 25%)使用 CPU,剩余 CPU 时间的 50%(总时间的 25%)用于等待 IO,剩下 25% 的 CPU 时间可用于下一个节目;那么第三个程序使用剩余 CPU 时间的 50%(占总时间的 12.5%)使用 CPU,剩余 50% 的 CPU 时间(占总时间的 12.5%)用于等待 IO,剩下 12.5% 的 CPU 时间可用下一个节目,然后...

    在这种情况下,每个程序将剩余时间减半,因此您得到“2的负幂”序列(1/2、1/4、1/8、1/16、1/32 ) 得出与预期答案相匹配的答案。

    因为我们得到了这个解释的正确答案,我们可以假设这就是“这些程序空闲等待 I/O 一半时间”的意思。

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      相关资源
      最近更新 更多