【python学习笔记】3:LRU(最近最少使用页面置换)算法
来源:互联网 发布:企业邮箱域名注册流程 编辑:程序博客网 时间:2024/06/05 16:29
题目描述:一进程刚获得3个主存块的使用权,若该进程访问页面的次序是1,2,3,4,1,2,5,1,2,3,4,5。当采用LRU算法时发生的缺页次数是多少?
LRU是最近最少使用页面置换算法,该算法用一个开放的栈来保存当前正在使用的各个页面号。当有一个新的页面要被访问时,就将该页面号加入栈顶(如果分配的内存不够,就将栈底页面号删除,其它页面号前移以给新页面腾出位置)。当要访问的页面已经在栈中时,就只要将这个页面移到栈顶,其它页面维持顺序即可。
缺页中断就是要访问的页不在主存,也就是本题中的开放的栈中没有保存要访问的页面号的情况。
*列表切片模拟LRU算法
List_flora=[1,2,3,4,1,2,5,1,2,3,4,5] #存放页面访问次序的列表lzh=[] #列表lzh最多(在填满后不多不少)3个元素,用来实现LRU算法count=0 #count用于计算缺页次数flag=True #True表示缺页print("三个主存块的数据变化情况:")for i in List_flora: #i从List_flora的第一个元素开始 if i not in lzh: #如果i不在lzh中,即缺页 flag=True #表示缺页 if len(lzh)<3: #如果lzh的长度还没到达3 lzh[len(lzh)::]=[i] #就在其尾部添加i else: #如果lzh的长度已经到达3了 lzh[0:2:]=lzh[1:3:] #将lzh[1]和lzh[2]复制到lzh[0]和lzh[1] lzh[2::]=[i] #将i放入lzh[2]的位置 count+=1 #缺页的,记录之 else: #如果i在lzh中,即不缺页 flag=False #表示不缺页 lzh[lzh.index(i):len(lzh)-1:]=lzh[lzh.index(i)+1::] #将i之后的元素都复制到i开始向后的位置,并在最后留一个空位保证不改变lzh长度 lzh[len(lzh)-1::]=[i] #将最后一个元素用i覆盖 print(lzh,"缺页了" if flag is True else "不缺页")print("LRU算法结束,总的缺页次数为",count)
运行结果:
一开始还以为python中没有bool型变量,原来是这里的true和false要写成True和False才行。
在切片中,如果对切片所得的东西赋值,就能改变原列表中该位置的数据。在这样的赋值中应尽量保证左右两侧的list长度一致,如果将
lzh[lzh.index(i):len(lzh)-1:]=lzh[lzh.index(i)+1::]
改为
lzh[lzh.index(i)::]=lzh[lzh.index(i)+1::]
就会发现得不到想要的结果了。
0 0
- 【python学习笔记】3:LRU(最近最少使用页面置换)算法
- LRU(最近最少使用页面置换算法)淘汰算法
- LRU(最近最少使用页面置换算法)淘汰算法
- [Leetcode-146] LRU Cache 最近最少使用页面置换算法
- 操作系统页面置换算法之最近最少使用算法(LRU)
- LRU最近最久未使用页面置换算法
- LRU(Least Recently Used)最近最少使用页面置换算法
- 页面置换算法-最近最久未用(LRU)
- 缓存淘汰算法--LRU算法【最近最少使用算法LRU置换策略适用于热点数据比较多的场景】
- 最近最久未使用(LRU)置换算法
- 最近最久未使用(LRU)置换算法
- LRU算法,最近最少使用算法
- LRU算法,最近最少使用算法
- 自适应Lru(最近最少使用)算法
- 最近最少使用(LRU)算法模拟--LeastRecentPage
- 最近最少使用缓存算法LRU
- 页面置换算法LRU
- 页面置换算法 LRU
- 8-22 开发记录
- 在moss页面出错时,显示详细的错误信息. (zt)
- ApplicationContext和BeanFactory的区别-----spring源码心得
- Asp.net如何验证TextBox控件只输入数字(五种情况分析)转帖
- HDOJ 1856 More is better (带权并查集)
- 【python学习笔记】3:LRU(最近最少使用页面置换)算法
- 使用Word 2013 完成博客
- 【转帖】ActiveX部件不能创建对象的终极解决方案
- Azure VM上传小文件
- java设计模式—依赖倒置原则(DIP)
- 利用Word2016发布博客园博客
- 第一次链接Azure,固定实例内部IP(DIP)
- Java动态代理分析
- 移动设备如何打开RMS加密的文档