全球旧事资料 分类
间未被使用我们可以设置一个计数器oldest2,把每一次放入固定内存内的序列数做一个统计,通过选择将计数最少的数淘汰出去。2、最佳淘汰(OPT)置换算法的思路最佳算法是当调入一新页而必须先淘汰一旧页,所淘汰的那一页应是以后不再使用的,或者是在最长时间段之后才会用到的页。这就需要我们先要知道所要放入页的内容,然后逐一判断那些页应该在放入内存后可以被淘汰。这个我用oldest这个函数实现这一筛选功能,先用两个循环对内存中的数与随机序列对比,看有没有相等的数,然后利用计数器oldest2返回未来最长时间不使用的页面位置。3、先进先出(FIFO)置换算法的思路先进先出算法实际上是选择在主存中居留最久的一页淘汰,即先进入主存的页。可以利用一个查询函数IsI
Buf来判断所要置换的页面与内存中的页面是否有重复,重复不置换,不重复就利用一个赋值语句将旧页置换出来,这里最重要的是页号的操作,可以利用一个控制语句oldold1i
tB来进行页面的转换。
四.系统结构:
最佳淘汰算法(OPT)模块先进先出的算法(FIFO)模块最近最久未使用算法(LRU)模块
主程序模块
使用最佳淘汰算法(OPT)的命中率
使用先进先出的算法(FIFO)的命中率程序系统结构图
使用最近最久未使用算法(LRU)的命中率
f五.数据结构的说明和模块的算法流程图
1数据结构的说明
作业的页面走向(执行过程中对页面的访问顺序)用数组,页面走向的长度控制以1为终结符。页框(作业分得的物理块)在不同置换算法执行之前长度由不同的置换算法其数据结构不同但原则式尽可能使程序的时间复杂度最低。FIFO,采用队列,对于LRU堆栈。
2模块的算法流程图21FIFO算法的流程图
开始
中断页数cha
ge0;循环控变量i0;利用循环将buf中的值全置1(过程略);假判断iN真jIsI
Bufbuflisti

判断是否置换标志:j1真判断bufold1真输出空字符输出置换页bufold将新的序列装入内存中bufoldlisti重置置换标志:oldold1i
tB中断次数cha
gei输出空字符i假
输出算法命中率1floatcha
ge39结束
f22LRU算法的流程图
开始
中断页数cha
ge0;循环控变量i0;利用循环将buf中的值全置1(过程略);假判断iN真jIsI
Bufbuflisti确定置换页oldoldest2f

判断是否置换标志:j1真输出置换页bufold将新的序列装入内存中bufoldlisti
将内存固定序列数计数数组清零:fold0中断次数cha
gei
将位置换内存技术数组清零:fj0输出空字符i
输出算法命中r
好听全球资料 返回顶部