这次作业的数据结构比较简单,所以没有单独写类,而是把成员和方法放在DLG类中。
首先关于指令访问次序,我写了一个Rand函数,用于生成上下限之间的伪随机数。由于指令不需要重复执行,所以函数里添加了一些判断指令是否已经执行的函数。已经执行的指令号存放在一个vector变量中,可以调用泛型算法来确定当前生成的随机数是否已经存在。
根据老师提供的指令访问次序原则,写了一个GetNext函数,根据当前已经执行的指令条数和上一条指令来生成下一条指令。然后就是调度函数了,循环320次,随机生成指令,然后模拟请求调页的过程。
按照老师PPT上给的指令访问次序原则,FIFO算法和LRU算法基本上都是 页面0调页,页面1调页,页面2调页,页面3调页,这种顺序,缺页率也始终都在50%多一点。
1