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)
Python 实现页面置换FIFO LRU算法
最新推荐文章于 2024-05-30 19:52:03 发布