3

我有一个问题,我不确定。如果有人可以提供帮助,我将不胜感激。问题是这样的:

以下程序请求序列取自 460 字节程序:10, 11, 104, 170, 73, 309, 185, 245, 246, 434, 458, 364 ((即内存中有一个程序长度为 460 字节,它在其文本中引用字节,10 表示引用程序的第 10 个字节,其中 10 是相对地址)。主存储器总共可以容纳该程序的 200 字节。指示哪些请求结果在页面错误中,使用 FIFO(先进先出)和 50 字节页面大小的最佳页面替换算法的页面错误数量是多少。

这是我的想法。首先,由于内存中没有任何内容,因此第一个请求 (10) 会导致页面错误。然后当字节 10 到 60 被加载到内存时,因为页面大小是 50 字节。当第二个请求到来时(11),它不是页面错误,因为它已经在内存中。然后 104 导致页面错误,并将 104-154 之间的字节加载到内存中。170 也会导致页面错误,并且 170-220 被加载到内存中,等等等等。就是这样。我的逻辑是真的吗?

提前致谢。

4

1 回答 1

0

不会。第三个请求会导致字节 100-149 被加载到内存中,因为二进制实际上被划分为 50 个字节的块,而字节 104 将落入第三个块。

您还应该考虑物理内存只能容纳 4 页。在某个时刻,您可能需要丢弃页面并在加载页面时重新触发页面错误。

于 2013-01-01T19:15:20.997 回答