算法过程:
简单Clock算法需要根据页面内存是否被访问来决定是否置换该页面。实际编程中,与最近最久未置换算法类似,用整型数组来表示当前每个内存页面是否被访问,其中1代表被访问过,0代表未访问过。每次置换,指针循环遍历,找出第一个访问位不为1的那个内存页面。并且在找到被置换页面之前,将所经过的所有页面内存对应的访问位置0.
在内存块初始化后,取出页面访问序列队列的队头。首先判断内存块中是否已经存在该队头页面,如果存在则直接显示内存块当前情况,相应访问位置1,指针循环下移;若不存在,循环遍历内存块,找出第一个访问位不为1的那个内存页面。并且在找到被置换页面之前,将所经过的所有页面内存对应的访问位置置0. 如果找到的内存页面不为空闲位,则将缺页数加1. 如此循环迭代,直到页面访问序列队列为空时,整个算法执行完毕。最后计算并显示缺页率。其流程图如图所示:
<