算法过程:
将内存块数组视为队列,在实现的过程中,初始化时,队头指针指向第一个内存块位置,队尾指针指向最后一个内存块位置。每次进行页面置换时,算法总置换当前队头,并且,队头指针循环加1,队尾指针循环加1.
在内存块初始化后,取出页面访问序列队列的队头。首先判断内存块中是否已经存在该队头页面,如果存在则直接显示内存块当前情况;否则,判断此时内存是否已满。如果内存未满,循环遍历找出空闲内存块,进行页面置换;若内存已满,置换内存块队列的队头页面,缺页数加1,队头指针队尾指针循环加1. 如此循环迭代,直到页面访问序列队列为空时,整个算法执行完毕。最后计算并显示缺页率。其流程图如下: