Python模拟页面调度LRU算法

Posted ggrm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python模拟页面调度LRU算法相关的知识,希望对你有一定的参考价值。

所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。

问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。

 

list=(1,3,4,6,2,5,1,2,3,4,5)#存放要访问的页面
a_list=[]#模拟算法中的主存,最多存放3个数
count=0#记录缺页数
tag=1#标记是否缺页
for i in list:
if i not in a_list:#如果将要访问的元素不在a_list中,即为缺页
count+=1
tag=1
if len(a_list)<3:#主存还有空闲
a_list[len(a_list)::]=[i]#a.list.append(i)将元素i添加到a_list尾部
else:
a_list[:2:]=a_list[1::]#将前两个元素替换为后两个元素,列表首元素出列表的功能
a_list[2::]=[i]#将i元素放移动后的到列表最后
else:
tag=0
a_list[a_list.index(i)::]=a_list[a_list.index(i)+1::]#将i开始和元素后面的元素替换为i元素后面的元素
a_list[len(a_list)::]=[i]#将i元素插入到移动后的列表后面
print(a_list,"缺页了"if tag==1 else "不缺页")
print("缺页数为:",count)

技术图片

 



 

以上是关于Python模拟页面调度LRU算法的主要内容,如果未能解决你的问题,请参考以下文章

操作系统课程设计

详解三种缓存过期策略LFU,FIFO,LRU(附带实现代码)

C#窗体模拟三种页面置换算法(OPT,FIFO,LRU)

FIFO调度算法和LRU算法

模拟虚拟存储系统的工作原理,使用 LRU 页面替换算法进行替换

页面调度先进先出算法(FIFO) 用C语言描述 欢迎高手前来挑战