详情移步: https://blog.csdn.net/wuchangi/article/details/80292685
模拟实现三种页面置换算法,具体步骤如下:
设该程序对应的指令的总条数为320。
指令地址范围为[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 次指令
页面大小的取值范围为 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 页。
在生成的页号序列中,对于相邻相同的页号,合并为一个页号。
分配给该程序的内存块数取值范围为1块,2块,直到程序使用的页面数。
分别采用 FIFO、LRU和OPT 算法对页号序列进行调度,计算出对应的缺页中断率。 并打印出页面大小、分配给程序的内存块数、算法名、对应的缺页中断率。