LRU(最近最少使用页面置换算法)

#!/usr/bin/env python
#-*-coding:utf-8-*-

'''
 LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,
 是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了
 下面是实现的方法
'''

def LRU(data, space = 5):
    '''
         data 一个装着数据的列表序列
         space 表示空间,这个空间数影响数据的呈现
    '''
    if type(data) != list:
        return
    if space < 2 :
        return

    lru = []
    index = 0
    for num in data:
        try:
            index = lru.index(num)
        except ValueError:
            index = -1

        count = len(lru)
        if index >= 0: #编号找到
            tmp = lru[index]
            del lru[index]
            lru.append(tmp)
        else:
            if count >= space: #当达到内存空间最大数时,将最不长用的元素去掉。
                del lru[0]
                lru.append(num)
            else:
                lru.append(num)

        print lru,
        print

if __name__ == "__main__":
    LRU([4,7,0,7,1,0,1,2,1,2,6])

猜你喜欢

转载自blog.csdn.net/jujueduoluo/article/details/79774343
今日推荐