一、目的要求
理解虚拟存储器概念,并掌握分页式存储管理地址转换和缺页中断的处理过程。用高级语言模拟请求分页式虚拟存储器的工作过程和页面置换算法LRU。

二、准备知识
2.1 分页式存储管理原理
在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。

如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。在分页存储管理方式中,如果不具备页面对换功能,则称为基本分页存储管理方式,或称为纯分页存储管理方式,它不具有支持实现虚拟存储器的功能,它要求把每个作业全部装入内存后方能运行。

请求式分页系统是建立在基本分页基础上的,为了能支持虚拟存储器功能,而增加了请求调页功能和页面置换功能。

2.2 LRU(Least recently used,最近最少使用)算法
根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

2.3 实现LRU的常用方法
用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存在的数据项的时间戳自增,并将新数据项的时间戳置为0并插入到数组中。每次访问数组中的数据项的时候,将被访问的数据项的时间戳置为0。当数组空间已满时,将时间戳最大的数据项淘汰

利用一个链表来实现,每次新插入数据的时候将新数据插到链表的头部;每次缓存命中(即数据被访问),则将数据移到链表头部;那么当链表满的时候,就将链表尾部的数据丢弃

三、实验内容
设计程序模拟请求分页式虚拟存储器的地址变换和缺页中断处理过程。

页面置换算法:最近最少使用(LRU)算法。

建立一个存储分块表(MBT),表示内存所有物理页的当前状态,是否空闲。此表用来为进程分配所需的内存空间,每个进程可分配5个物理页

页面大小为1K个存储单元

允许多进程并发执行,为每个进程建立一个页表,表示该进程中各逻辑页是否已经调入内存,如果已经调入,该逻辑页对应的内存物理页号

当进程发生缺页中断,并且对应的5个物理页没有空闲时,实现采用LRU算法页面置换

程序模拟输出进程的访存过程:输入逻辑地址,转换为逻辑页号和页内地址,判断是否产生缺页中断完成调页,然后实现地址变换,查页表得到对应的物理页号,从而得到物理地址

四、实验结果

完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:

https://www.write-bug.com/article/3167.html

java 最少使用(lru)置换算法_[内附完整源码和文档] 基于C#的可视化虚拟存储器管理(LUR算法)...相关推荐

  1. java实现三天免登陆_[内附完整源码和文档] 基于Java的人事档案管理系统

    摘 要 随着信息技术的迅速发展,信息资源数字化.网络化的进程进一步加快,档案管理的信息化建设已经成一个备受关注的热点.企业.学校.政府单位等都需要对档案进行信息化管理,来适应当今社会的信息化.网络化发 ...

  2. java 教室借用管理系统_[内附完整源码和文档] 基于JAVA语言的学生选课信息管理系统...

    摘 要 本系统运用Java面向对象的方法设计而成. 近年来,学生选课系统越来越在高校学生群体中得到普及,其所承担的功能也变得越来越丰富,所起到的作用也变得越来越重要,在被学校学生重视的同时,也意味着它 ...

  3. java sql进销存_[内附完整源码和文档] 基于Java和Sql Server 2008的陶瓷工厂进销存管理系统...

    摘 要 时代在进步,我们的生产生活方式当然也要相对应的做出改变了.在今天这样一个信息化的时代,计算机软件已经广泛的被用于日常的办公,仓库的库存管理,企业的人员以及资产管理,文字的编辑处理,电子表格的广 ...

  4. python手机通讯录管理系统代码_[内附完整源码和文档] 基于Java的个人通讯录管理系统...

    摘 要 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理 ...

  5. 投票源码程序_[内附完整源码和文档] 基于JSP实现的影视创作论坛系统

    摘 要 随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评.解 ...

  6. d3.js 旋转图形_[内附完整源码和文档] 基于Qt实现的图形系统

    一.概述 本系统拟完成一个图形系统,对多种常见图形进行基本操作 系统功能 二维图形的输入:可输入或全部清除不同颜色的直线.矩形.圆.椭圆.多边形.曲线.铅笔工具 二维图形的编辑:对于直线.矩形.圆.椭 ...

  7. 矩阵化为行最简形矩阵计算器_[内附完整源码和文档] 基于C++的小型特殊计算器...

    1.设计内容 实现一个特殊的计算器,可以实现复数.有理数.矩阵和集合的特殊计算.程序可以实现复数.有理数的加.减.乘.除,可以实现矩阵的加法.减法和乘法运算,也可以实现集合的求交集.并集.子集的运算. ...

  8. c++ udp多线程 例子_[内附完整源码和文档] 基于udp实现tcp功能进行大文件传输

    一.项目要求 Please choose one of following programing languages: C, C++, Java, Python; 本项目采用的是python3.6 L ...

  9. python优秀源码新闻系统_[内附完整源码和文档] 基于python的新闻检索系统

    1 系统介绍 1.1 系统需求 新闻检索系统:定向采集不少于 4 个中文社会新闻网站或频道,实现这些网站新闻信息及评论信息的自动爬取.抽取.索引和检索.本项目未使用 lucene,Goose 等成熟开 ...

最新文章

  1. 酷炫Jquery收集
  2. 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测
  3. tcp,udp报文最大长度
  4. 几种软件滤波算法的原理和比较(带源码)
  5. .Net 中的反射(序章) - Part.1
  6. mariadb用户群体mysql_mysql(mariadb)新建用户及用户授权管理
  7. 品牌怎么做知乎营销?
  8. Web的Cookies,Session,Application
  9. Python路飞学城老男孩内部书籍,Python全栈开发实战pdf
  10. unity 获取 AudioSource 分贝值
  11. A Feature Descriptor: Shape Context
  12. Hibernate HHH000179警告和narrow proxy
  13. MARIADB数据库服务器
  14. 中泰资管天团丨如何用量化复制巴菲特?
  15. Ubuntu Kylin使用docker单机部署Fate联邦学习框架
  16. python安装第三方包_python 安装第三方包
  17. icq蓝牙_使用WhizBase发送ICQ消息
  18. 静电场边值问题及其求解
  19. 【tips】自动化测试工具 - selenium和phantomJS
  20. python云图制作壮观天体照_Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图...

热门文章

  1. 进击的程序媛:从 Google 第一位程序媛到硅谷女王进化史
  2. 鸿蒙 OS 尖刀武器之分布式软总线技术全解析!
  3. 2020 OPPO 开发者大会重磅推出 ColorOS 11,适配机型达 33 种
  4. 友盟+发布小程序统计分析工具U-MiniProgram
  5. 数据科学家在“新常态”下发生了怎样的转变?
  6. 手机很早就有飞行模式了,为什么最近几年坐飞机才不用关机?
  7. Python、Go、JavaScript、Rust 将长盛 5 年!
  8. 技术开发者该如何开展小团队的微服务之路?
  9. Python 一键转 Java?“Google 翻译”你别闹
  10. 写给社区的回顾和展望:TiDB 2019, Level Up !