我有一个问题,但我不确定。如果有人能帮上忙,我将不胜感激。问题是这样的:
对程序的以下请求序列取自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会被加载到内存中,等等。我的逻辑是真的吗?
提前谢谢。
发布于 2013-01-02 03:15:21
不是的。第三个请求将导致字节100-149被加载到存储器中,因为二进制实际上被分成50个字节的块,并且字节104将落入第三个块。
您还应该考虑到物理内存只能容纳4个页面。在某些情况下,您可能需要丢弃页面,并在加载页面时重新触发页面错误。
https://stackoverflow.com/questions/14113309
复制相似问题