Skip to content

Yuziquan/PageReplacementSimulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PageReplacementSimulation

PageReplacementSimulation license

详情移步: https://blog.csdn.net/wuchangi/article/details/80292685

一、项目功能

模拟实现三种页面置换算法,具体步骤如下:


设该程序对应的指令的总条数为320。

1. 基于随机数产生该程序依次执行的指令的地址序列

指令地址范围为[0, 319],指令的地址按下述原则生成:

A:50%的指令是顺序执行的

B:25%的指令是均匀分布在前地址部分

C:25%的指令是均匀分布在后地址部分

具体的实施方法是:

A:在[0,319]的指令地址之间随机选取一起点m

B:顺序执行一条指令,即执行地址为m+1 的指令

C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m'

D:顺序执行一条指令,其地址为m'+1

E:在后地址[m'+2,319]中随机选取一条指令并执行

F:重复步骤A-E,直到320 次指令


2. 将指令地址序列根据页面大小转换为页号序列

页面大小的取值范围为 1K,2K,4K,8K,16K。

设页面大小为1K,用户内存容量4页到32页,用户虚存容量为32K。 在用户虚存中,按每K(即每页)存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:

第 0 条-第 9 条指令为第 0 页(对应虚存地址为[0,9]);

第 10 条-第 19 条指令为第 1 页(对应虚存地址为[10,19]);

………………………………

第 310 条-第 319 条指令为第 31 页(对应虚存地址为[310,319]);

按以上方式,用户指令可组成 32 页。


3. 合并相邻页号

在生成的页号序列中,对于相邻相同的页号,合并为一个页号。


4. 指定分配给该程序的内存块数

分配给该程序的内存块数取值范围为1块,2块,直到程序使用的页面数。


5. 执行页面置换算法的模拟过程

分别采用 FIFO、LRU和OPT 算法对页号序列进行调度,计算出对应的缺页中断率。 并打印出页面大小、分配给程序的内存块数、算法名、对应的缺页中断率。



二、项目运行效果

1


2


3


About

Using Java to implement the simulated page replacement algorithm, the specific page replacement process displayed in the console.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages