基于JAVA的虚拟页面置换算法

Nuisance

发布日期: 2019-01-21 10:59:49 浏览量: 456
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

一 概述

  • 目的:实现OPT、FIFO、LRU三种置换算法。

  • 主要完成任务:实现三种算法并计算出每种算法的却页数,且以表格形式输出结果。

  • 使用开发工具:Eclipse—Java。

  • 解决主要问题:编写出可视化窗口输出运行结果。

二 使用的基本概念和原理

  • OPT:在分配内存页面数(本实验为3)小于进程页面数(本实验为10)时,先运行的3个页面放入内存中。有需要处理的新页面,则将原来内存中的3个页面中将来不再使用的调出,然后将新页面放入

  • FIFO:在分配内存页面数(本实验为3)小于进程页面数(本实验为10)时,先运行的3个页面放入内存中。这时有需要处理的新页面,则将原来内存中的3个页面中最先进入的调出,然后将新的页面放入。

  • LRU:在分配内存页面数(本实验为3)小于进程页面数(本实验为10)时,先运行的3个页面放入内存中。当需要调页面进入内存,而当前分配的页面全部不空闲时,选择其中最长时间没有使用的页面调出,以空出内存来放置新调入的页面。

三 总体设计

四 测试时出现过的问题及解决方法

测试结果如下:

手动输入下的OPT算法:

手动输入下的FIFO算法:

手动输入下的LRU算法

随机产生下的OPT算法:

随机产生下的FIFO算法:

随机产生下的LRU算法:

  • OPT算法的设计

OPT算法较其他两种算法难了很多。在思路上也很不同。所以一开始并未成功写出,后来在网上查阅一些资料提供了一些新的思路,终于解决。难处在于如何处理好当前内存中的页面和将来页面的比价并记录下将来页面出现的时间

  • LRU算法和FIFO算法中缺页的判断

和OPT算法不同的是这两种算法更容易出现当前页面已经在内存中出现,遂不能算作缺页。一开始并未考虑周到,设计成只要内存中数据发生变化(包括顺序变化)即缺页,后发现问题后及时调整解决问题

上传的附件 cloud_download 基于JAVA的虚拟页面调度算法.zip ( 190.29kb, 12次下载 )
error_outline 下载需要7点积分

发送私信

如果我想抱你,你会伸手还是后退

21
文章数
14
评论数
最近文章
eject