所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。

问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。

这个题为京东2015年笔试考题,主要考察对LRU算法的理解

代码如下

n = int(input())
def LRU(pages, maxNum):
    temp = []
    times = 0

for page in lst:
        num = len(temp)
        if num < n:
            times += 1
            temp.append(page)
        elif num == n:                #要访问的新页面已在主存块中
            if page in temp:          #处理“主存块”,把最新访问的页面交换到列表尾部
                pos = temp.index(page)
                temp = temp[:pos] + temp[pos+1:] + [page]
            else:                     #把最早访问的页面踢掉,调入新页面
                temp.pop(0)
                temp.append(page)
                times += 1

return times

lst = (1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5)
print(LRU(lst, 3))

截图如下

转载于:https://www.cnblogs.com/liuzhaowei/p/10770783.html

python模拟页面调度LRU算法相关推荐

  1. Python列表模拟页面调度LRU算法(京东2016笔试题)

    问题描述:一进程刚获得3个主存块的使用权,若该进程访问页面的次序是1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.当采用LRU算法时,发生的缺页次数是多少? 解析:所谓LRU算法 ...

  2. python模拟微信发红包算法_微信红包的随机算法是怎样实现的?

    有人问过微信的人,大致是这样: 先上代码: public static double getRandomMoney(RedPackage _redPackage) { // remainSize 剩余 ...

  3. 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法

    一,LRU算法介绍 LRU是内存分配中"离散分配方式"之分页存储管理方式中用到的一个算法.每个进程都有自己的页表,进程只将自己的一部分页面加载到内存的物理块中,当进程在运行过程中, ...

  4. OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc

    实用标准文案 精彩文档 操作系统实验报告 页面置换算法模拟 --OFT.FIFO和LRU算法 班级:2013级软件工程1班 学号:X X X 姓名:萧氏一郎 数据结构说明: Memery[10]物理块 ...

  5. linux页面算法源码,LRU算法原理解析

    LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的. 现代操作系统提供了一种对主存的抽象概念虚拟内存,来对主存进行更好地管理.他将主存 ...

  6. 编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc

    实 验3: 页式虚拟存储管理程序模拟 实验目的: 编写程序来模拟计算机的两种调度方式: (1)先进先出算法 (2)最近最少使用算法 程序设计 FIFO() FIFO() LRU() Msize加1 S ...

  7. 操作系统:页面置换算法(FIFO算法、LRU算法、LFU算法、NRU算法)实验报告

    操作系统实验报告 一.实验名称 :页面置换算法 二.实验目的: 在实验过程中应用操作系统的理论知识. 三.实验内容: 采用C/C++编程模拟实现:FIFO算法.LRU算法.LFU算法.NRU算法四个页 ...

  8. lru调度算法例题_FIFO调度算法和LRU算法

    微信公众号关注我,更多计算机知识告诉你! 一.理论 FIFO:先进先出调度算法 LRU:最近最久未使用调度算法 两者都是缓存调度算法,经常用作内存的页面置换算法. 打一个比方,帮助你理解.你有很多的书 ...

  9. 操作系统学习之用C语言模拟LRU算法

    前言 LRU算比较经典,而且考的也比较多,LRU算法全称Least Recently Used,译为最近最少使用.用C模拟一下吧. Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 F ...

最新文章

  1. 纠错工具之 - Proovread
  2. 微软:Visual Studio2010能驱动世界
  3. win2008 IIS7中启用JS的gzip压缩的方法
  4. Ubuntu 16.04使用root 帐号开启 SSH 登录
  5. LibSVM学习(三)——LibSVM使用规范
  6. 多线程编程4 - GCD
  7. 使用apache的HttpGet\HttpPost获取返回内容编码问题
  8. rust雪山矿洞几个入口_梅里雪山内转全记录(雨崩徒步:神湖神瀑冰湖)
  9. 关于集成通用mapper的Mybatis代码生成器产生的model类注解
  10. mysql 数据导出语句_MySQL 数据导出
  11. 订阅个人Blog最新评论的方法
  12. 透明图片下载求全透明png图片_微信“全透明”模式,让你的微信真正实现隐身效果!...
  13. D2. Seating Arrangements (hard version)
  14. SetDlgItemText
  15. 为什么学编程都建议不要用拼音命名?看知乎大佬的回答!秒懂
  16. 如何在网上选到一瓶心仪的红酒?通过文本分析预测葡萄酒的质量
  17. execve的使用说明
  18. MySQL_创建表,添加表注释,复制表结构
  19. 本科计算机教程,计算机本科教程
  20. pandas读取文件数据、存储详解笔记

热门文章

  1. 电脑安装python后开不了机_Python学习第145课——关于无法正常启动centOS问题的解决方案...
  2. 信奥中的数学:斯特林数、卡特兰数
  3. 理性派:数学写真集系列书籍等
  4. 一年级学情分析计算机,小学一年级语文学情分析范文
  5. Linux基础学习四:Linux常用的命令(非常详细)
  6. Java笔记-Servlet相关记录
  7. Qt实践| HTTP知识点-Qt填充referer请求头盗取图片
  8. php 伪造请求连接,phpcurl发送伪造请求
  9. spi总线 上层调用_spi总线设备驱动分析
  10. linux设备负责执行计划任务,Linux计划任务详解,很详细,每一行命令都有相对应的白话解释。...