Algorithm 关于FIFO页面替换算法的一个实际例子的困惑?
我正在用不同的页面替换算法做一些理论示例,以便更好地理解我实际编写代码的时间。我对这个例子有点困惑 下面给出的是一个具有4个分片(4个部分?)的物理内存。依次访问以下页面:Algorithm 关于FIFO页面替换算法的一个实际例子的困惑?,algorithm,memory,memory-management,fifo,Algorithm,Memory,Memory Management,Fifo,我正在用不同的页面替换算法做一些理论示例,以便更好地理解我实际编写代码的时间。我对这个例子有点困惑 下面给出的是一个具有4个分片(4个部分?)的物理内存。依次访问以下页面: R=1,2,3,2,4,5,3,6,1,4,2,3,1,4 在具有4个磁贴的R上运行FIFO页面替换算法 我知道当一个页面需要换入时,操作系统会将内存中最长时间的页面换出。实际上,我会: Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Page 1 2 3 2 4 5 3 6 1 4
R=1,2,3,2,4,5,3,6,1,4,2,3,1,4
在具有4个磁贴的R上运行FIFO页面替换算法
我知道当一个页面需要换入时,操作系统会将内存中最长时间的页面换出。实际上,我会:
Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Page 1 2 3 2 4 5 3 6 1 4 2 3 1 4
Tile 1 1 1 1 1 1 5 5
Tile 2 2 2 2 2 2 2
Tile 3 3 3 3 3 3
Tile 4 4 4 4
我不确定时间=8时发生了什么。我知道它不会取代第5页和第4页,但我不确定第3页和第2页之间的内容。因为在时间=4时,我们有一个2,这是否意味着第3页将被替换?或者是因为在时间=4时,我们的内存中已经有2个,因此在时间=8时,我们将替换2?FIFO(先进先出)在这里的意思是:如果新条目需要空间,则将替换最旧的条目。这与LRU(最近一次使用)形成对比,即更换最长时间未使用的条目。在时间5考虑四个瓦片的内存:
Tile Page Time of loading
1 1 1
2 2 2
3 3 3
4 4 5
在时间6时,需要为第5页留出空间,因此必须替换内存中的一页。根据先进先出原则,此处替换第1页:
Tile Page Time of loading
1 5 6
2 2 2
3 3 3
4 4 5
此事件在时间8时重复,将替换内存中最旧的页:
Tile Page Time of loading
1 5 6
2 6 8
3 3 3
4 4 5
因此,在这里写下作业时的创建时间很有帮助。我不知道为什么你认为t=4是一个特殊的时间。在FIFO缓存中,分片以循环方式填充(逐出上一页)。瓷砖1,2,3,4,1,2,3,4,1,2等。感谢您的清理!我只是对当你必须“两次”替换内存中的一个页面时会发生什么感到困惑——就像在一开始它被添加,我们有一个页面错误,但后来我们有一个页面被点击,因为该页面已经存在于内存中。