gpt4 book ai didi

java - 如何将此功能调整为 FIFO 和 LRU?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:27 24 4
gpt4 key购买 nike

我在理解 FIFO 和 LRU 时遇到了一些困难,我正在尝试将我的代码更改为那些。

这是我的默认 pageFault 方法:

private void pageFault(int pageNumber){
pageFaults++;

try {
pageFile.seek(pageNumber*PageSize);
for(int b=0;b<PageSize;b++)
RAM[freePos*PageSize+b]=pageFile.readByte();
} catch (IOException ex) {
Logger.getLogger(MemoryManager.class.getName()).log(Level.SEVERE, null, ex);
}

pageTable[pageNumber] = freePos;
freePos++;
}

该方法非常有效,但我不确定如何使其成为 FIFO 和 LRU,如下所示:

private void pageFaultFIFO(int pageNumber);

private void pageFaultLRU(int pageNumber);

最佳答案

让我们理清您对 FIFO 和 LRU 的理解。

先进先出:操作系统在队列中跟踪内存中的所有页面,最近到达的在后面,最早到达的在前面。当需要替换页面时,将选择队列前面的页面(最旧的页面)。虽然 FIFO 便宜且直观,但在实际应用中表现不佳。

例如。如果你有 10 只鞋,而你妈妈说扔掉任何 5 只,那么你会选择最老的 5 只扔掉。


LRU:LRU 的工作原理是,在过去的几条指令中使用最多的页面最有可能在接下来的几条指令中也被大量使用。

例如。在这里,如果你有 10 只鞋,而你妈妈说扔掉任何 5 只,那么你会选择那 5 只你不常穿的鞋扔掉。

关于java - 如何将此功能调整为 FIFO 和 LRU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com