全球旧事资料 分类
面置换算法。
2实验内容
1通过随机数产生一个指令序列,共320条指令
指令的地址按下述原则生成:a50的指令是顺序执行的;b25的指令是均匀分布在前地址部分;c25的指令是均匀分布在后地址部分;
具体的实施方法是:a在0,319的指令地址之间随机选取一起点m;b顺序执行一条指令,即执行地址为m1的指令;c在前地址0,m1中随机选取一条指令并执行,该指令的地址为md顺序执行一条指令,其地址为m1e在后地址m2,319中随机选取一条指令并执行f重复上述步骤af,直到执行320次指令。
2将指令序列变换成为页地址流
设:a页面大小为1K;b用户内存容量为4页到32页;c用户虚存容量为32K。
在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条第9条指令为第0页(对应虚存地址为0,9);第10条第19条指令为第1页(对应虚存地址为10,19);……第310条第319条指令为第31页(对应虚存地址为310,319)。
按以上方式,用户指令可以组成32页。
3计算并输出下述各种算法在不同内存容量下的命中率
a先进先出的算法(FIFO);b最近最少使用算法(LRU);c最佳淘汰算法(OPT);
f命中率1页面失效次数页地址流长度
在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。
3随机数产生办法
关于随机数产生办法,可以采用操作系统提供的函数,如Li
ux或UNIX系统提供函数sra
d和ra
d,分别进行初始化和产生随机数。例如:
sra
d语句可以初始化一个随机数;
a010ra
d327673191a110ra
d32767a0
…语句可以用来产生a0与a1中的随机数。
环境说明
此实验采用的是Wi
7下Codeblocks1005编译器编程。此word实验文档中采用
otepad的语法高亮。
4程序设计说明
41全局变量
co
sti
tmax
320
序列个数
co
sti
tmaxmax
20数组大小
co
sti
tmaxpmax10最大页数
i
ti
stmax指令序列
i
tpagemax页地址流
i
tsize
内存能容纳的页数
booli
maxp该页是否在内存里,提高效率i
tpi
maxp现在在内存里的页
其中i
数组是为了方便直接判断该页是否在内存里,而不用遍历内存里所有页来判断。fault_
用来记录缺页次数。
f42随机指令序列的产生
按照实验要求的写了,但是由于没有考虑细节,开始时出了点问题。(1)当m319时,我们顺序执行m1会产生第32页的页地址,从而使页地址没能按要求限制在031
之间。解决方法:采用循环模加来避免超r
好听全球资料 返回顶部