软工博客27

所谓 LRU 算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主
存块,腾出地方来调入新页面。
问题描述:一进程获得 n 个主存块的使用权,对于给定的进程访问页面次序,问当采用
LRU 算法时,输出发生的缺页次数。

读取主存块数量

n = int(input())

读取进程访问页面的次序

page_sequence = list(map(int, input().split()))

初始化主存块列表和缺页次数

memory_blocks = []
page_faults = 0

遍历页面访问次序

for page in page_sequence:
# 如果页面不在主存块中,发生缺页
if page not in memory_blocks:
page_faults += 1
# 如果主存块已满,移除最近最少使用的页面
if len(memory_blocks) == n:
memory_blocks.pop(0)
# 将新页面添加到主存块列表末尾
memory_blocks.append(page)
else:
# 如果页面已在主存块中,将其移到列表末尾,表示最近使用
memory_blocks.remove(page)
memory_blocks.append(page)

输出缺页次数

print(page_faults)

posted @ 2025-04-17 16:18  Thanatos。syts  阅读(27)  评论(0)    收藏  举报