python切片模拟LRU算法怎么实现

这篇文章主要介绍“python切片模拟LRU算法怎么实现”,在日常操作中,相信很多人在python切片模拟LRU算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python切片模拟LRU算法怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

问题描述:一进程刚获得三个主存块的使用权,若该进程访问页面的次序是1,2,3,4,1,2,5,1,2,3,4,5。当采用LRU算法时,发生的缺页次数是多少?

Hint:LRU(Least Recently Used)意思是近期最少使用。

这个算法常用于页面置换算法中。当我们新要访问的页面不在主存中时,就将最近最少使用的页面移除主存,将新的页面存入主存。可以用一个队列来模拟这个算法:目前访问的网页在队列的尾部,最近最少访问的网页在队列的头部,如果新访问的网页在队列中就把这个页面移到队尾,其他页面依次前移;如果新访问的网页不在队列中那就把队头出队然后其他页面前移,新要访问的页面入队。所谓缺页就是指在主存中没有需要访问的页面。

用python模拟LRU算法:

List=[1,2,3,4,1,2,5,1,2,3,4,5]  #此列表中存放将要访问的页面 a_list=[]                       #此列表用来模拟LRU算法中的主存 最多存放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中没有放满             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:                                   #i元素在列表中         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算法怎么实现  python 第1张

到此,关于“python切片模拟LRU算法怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注蜗牛博客网站,小编会继续努力为大家带来更多实用的文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram