一、使用说明
1.1 项目简介
请求分页分配方式的模拟,包括页面、页表、地址的转换和页面置换过程,并通过该模拟过程加深对请求调页系统的原理和实现过程的理解。并且学习Android环境下使用Java编写LRU、FIFO算法。
这次项目我偏向于算法的实现,目的是为了更好的比较出FIFO算法和LRU算法两种算法的不同之处,所以我实现了两种页面置换方式和两种指令执行顺序,工作量比项目要求大了一些,所以UI方面没有时间和精力去做更细致的绘画,希望助教和老师能原谅。
1.2 项目要求
假设每个页面可存放10条指令,分配给一个作业的内存块为4。模拟一个作业的执行过程,该作业有320条指令,即它的地址空间为32页,目前所有页还没有调入内存
在模拟过程中,如果所访问指令在内存中,则显示其物理地址,并转到下一条指令;如果没有在内存中,则发生缺页,此时需要记录缺页次数,并将其调入内存。如果4个内存块中已装入作业,则需进行页面置换
所有320条指令执行完成后,计算并显示作业执行过程中发生的缺页率
本次项目采取了两种页面置换算法,FIFO算法和LRU算法
本次项目采取了两种指令执行顺序,随机顺序和项目文档要求中的1:2:1随机顺序,即50%的指令是顺序执行的,25%是均匀分布在前地址部分,25%是均匀分布在后地址部分
视图一显示了每一步请求调页的指令信息,视图二显示了4块内存的页面使用情况
1.3 操作手册
运行程序后,首先进入操作界面,如图。
参考文档和完整的文档和源码下载地址: