Python 实现页面置换FIFO LRU算法

def FIFO(pages,cap):
    frame=[]
    p=0
    c=0
    for page in pages:
        if page not in frame:
            if len(frame) <cap:
                print("主页号"+str(frame))
                frame.append(page)
                c+=1
            else:
                frame[p%cap]=page
                print("主存业号"+str(frame)+"   淘汰"+str(frame[p%cap]))
                p+=1
                c+=1
        else:
            print("主存业号" + str(frame) )
    print("缺页中断率为"+str(c/len(pages)))
def LRU(pages,cap):
    frame=[]
    dp=0
    c=0
    for page in pages:
        if page not in frame:
            if len(frame)<cap:
                frame.append(page)
                frame.reverse()
                print("主存业号"+str(frame))
                frame.reverse()
                c+=1
            else:
                dp = frame[0]
                del(frame[0])
                frame.append(page)
                frame.reverse()
                print("主存业号" + str(frame)+"    淘汰  "+str(dp))
                frame.reverse()
                c+=1
        else:
            frame.remove(page)
            frame.append(page)
            frame.reverse()
            print("主存业号" + str(frame))
            frame.reverse()
    print("缺页中断率"+str(c/len(pages)))

if __name__ == '__main__':
    pages1=[7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1]
    cap=4
    # FIFO(pages1,cap)
    LRU(pages1,cap)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值