文件名称:内存管理算法
文件大小:9KB
文件格式:CPP
更新时间:2015-01-04 02:31:59
操作系统都会做的实验
2.设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。 1) 最佳置换算法(Optimal) 2) 先进先出法(Fisrt In First Out) 3) 最近最久未使用(Least Recently Used) 4) 最不经常使用法(Least Frequently Used) 5) 最近未使用法(No Used Recently) 其中,命中率=1-页面失效次数/页地址流长度。 试对上述算法的性能加以较各:页面个数和命中率间的关系;同样情况下的命中率比较。 实验准备 本实验中主要的流程:首先用srand( )和rand( )函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。 实验可先从一个具体的例子出发。 (1)通过随机数产生一个指令序列,共2048条指令。指令的地址按下述原则生成: A:50%的指令是顺序执行的 B:25%的指令是均匀分布在前地址部分 C:25%的指令是均匀分布在后地址部分 具体的实施方法是: A:在[0,1023]的指令地址之间随机选取一起点m B:顺序执行一条指令,即执行地址为m+1的指令 C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’ D:顺序执行一条指令,其地址为m’+1 E:在后地址[m’+2,2047]中随机选取一条指令并执行 F:重复步骤A-E,直到2048次指令 (2)将指令序列变换为页地址流 设:页面大小为4K; 用户内存容量4页到32页; 用户虚存容量为32K。 在用户虚存中,按每K存放64条指令排列虚存地址,即2048条指令在虚存中的存放方式为: 第 0 条-第 63 条指令为第0页(对应虚存地址为[0,63]) 第64条-第127条指令为第1页(对应虚存地址为[64,127]) ……………………………… 第1984条-第2047条指令为第31页(对应虚存地址为[1984,2047]) 按以上方式,用户指令可组成32页。