python *** 作系统页面置换算法

python *** 作系统页面置换算法,第1张

python *** 作系统页面置换算法 页面置换算法
  1. 实验要求
    编程实现请求分页内存管理方法中的页面置换算法。包括FIFO,LRU.并对实验结果进行分析。
  2. 代码
    import numpy as np
    import datetime
    class Page:
        def __init__(self,id:int):
            self.id = id
            self.arrive = datetime.datetime.now()
    class PageReplacement:
        def __init__(self,mode:str,maxpage:int,pagenum:int):
            self.mode = mode
            self.pagenum = pagenum
            self.pages = [Page(np.random.randint(0,maxpage)) for _ in range(np.random.randint(20,50))]
            if mode.lower()=='both':
                self.FIFO()
                self.LRU()
                self.printstates()
            elif mode.lower()=='fifo':
                self.FIFO()
                self.printstates()
            elif mode.lower()=='lru':
                self.LRU()
                self.printstates()
            else:
                raise Exception('Error! Unavailable mode {}'.format(mode))
        def FIFO(self):
            states = []
            state = []
            firstin = 0
            for page in self.pages:
                if len(state) 
  3. 模拟优化
    1. 程序的局部性原理,如果某数据被访问,则不久之后该数据可能再次被访问。因此页面置换算法才得以实现
    2. 页面号引用串随机生成来模拟真实环境
  4. 运行方式
    python exp4.py # python exp4.py --mode=both --maxpage=10 --pagenum=3
    # python exp4.py --mode=fifo --maxpage=10 --pagenum=3
    # python exp4.py --mode=lru --maxpage=10 --pagenum=3
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存