python 排程问题仿真_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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值