python模拟页面调度LRU算法
所谓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算法相关推荐
- Python列表模拟页面调度LRU算法(京东2016笔试题)
问题描述:一进程刚获得3个主存块的使用权,若该进程访问页面的次序是1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.当采用LRU算法时,发生的缺页次数是多少? 解析:所谓LRU算法 ...
- python模拟微信发红包算法_微信红包的随机算法是怎样实现的?
有人问过微信的人,大致是这样: 先上代码: public static double getRandomMoney(RedPackage _redPackage) { // remainSize 剩余 ...
- 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法
一,LRU算法介绍 LRU是内存分配中"离散分配方式"之分页存储管理方式中用到的一个算法.每个进程都有自己的页表,进程只将自己的一部分页面加载到内存的物理块中,当进程在运行过程中, ...
- OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc
实用标准文案 精彩文档 操作系统实验报告 页面置换算法模拟 --OFT.FIFO和LRU算法 班级:2013级软件工程1班 学号:X X X 姓名:萧氏一郎 数据结构说明: Memery[10]物理块 ...
- linux页面算法源码,LRU算法原理解析
LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的. 现代操作系统提供了一种对主存的抽象概念虚拟内存,来对主存进行更好地管理.他将主存 ...
- 编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc
实 验3: 页式虚拟存储管理程序模拟 实验目的: 编写程序来模拟计算机的两种调度方式: (1)先进先出算法 (2)最近最少使用算法 程序设计 FIFO() FIFO() LRU() Msize加1 S ...
- 操作系统:页面置换算法(FIFO算法、LRU算法、LFU算法、NRU算法)实验报告
操作系统实验报告 一.实验名称 :页面置换算法 二.实验目的: 在实验过程中应用操作系统的理论知识. 三.实验内容: 采用C/C++编程模拟实现:FIFO算法.LRU算法.LFU算法.NRU算法四个页 ...
- lru调度算法例题_FIFO调度算法和LRU算法
微信公众号关注我,更多计算机知识告诉你! 一.理论 FIFO:先进先出调度算法 LRU:最近最久未使用调度算法 两者都是缓存调度算法,经常用作内存的页面置换算法. 打一个比方,帮助你理解.你有很多的书 ...
- 操作系统学习之用C语言模拟LRU算法
前言 LRU算比较经典,而且考的也比较多,LRU算法全称Least Recently Used,译为最近最少使用.用C模拟一下吧. Buddy算法:操作系统学习之用C语言模拟伙伴(Buddy)算法 F ...
最新文章
- 纠错工具之 - Proovread
- 微软:Visual Studio2010能驱动世界
- win2008 IIS7中启用JS的gzip压缩的方法
- Ubuntu 16.04使用root 帐号开启 SSH 登录
- LibSVM学习(三)——LibSVM使用规范
- 多线程编程4 - GCD
- 使用apache的HttpGet\HttpPost获取返回内容编码问题
- rust雪山矿洞几个入口_梅里雪山内转全记录(雨崩徒步:神湖神瀑冰湖)
- 关于集成通用mapper的Mybatis代码生成器产生的model类注解
- mysql 数据导出语句_MySQL 数据导出
- 订阅个人Blog最新评论的方法
- 透明图片下载求全透明png图片_微信“全透明”模式,让你的微信真正实现隐身效果!...
- D2. Seating Arrangements (hard version)
- SetDlgItemText
- 为什么学编程都建议不要用拼音命名?看知乎大佬的回答!秒懂
- 如何在网上选到一瓶心仪的红酒?通过文本分析预测葡萄酒的质量
- execve的使用说明
- MySQL_创建表,添加表注释,复制表结构
- 本科计算机教程,计算机本科教程
- pandas读取文件数据、存储详解笔记
热门文章
- 电脑安装python后开不了机_Python学习第145课——关于无法正常启动centOS问题的解决方案...
- 信奥中的数学:斯特林数、卡特兰数
- 理性派:数学写真集系列书籍等
- 一年级学情分析计算机,小学一年级语文学情分析范文
- Linux基础学习四:Linux常用的命令(非常详细)
- Java笔记-Servlet相关记录
- Qt实践| HTTP知识点-Qt填充referer请求头盗取图片
- php 伪造请求连接,phpcurl发送伪造请求
- spi总线 上层调用_spi总线设备驱动分析
- linux设备负责执行计划任务,Linux计划任务详解,很详细,每一行命令都有相对应的白话解释。...