2 任务:CLOCK算法 2.1 任务描述 设计CLOCK页面置换算法模拟程序:从键盘输入访问串。计算CLOCK算法在不同内存页框数时的缺页数和缺页率。要求程序模拟驻留集变化过程,即能模拟页框装入与释放过程。 2.2任务要求 输入串长度作为总页框数目,补充程序完成CLOCK算法。 2.3算法思路 装入内存的页框用链接指针组织成循环队列;为该队列设置一个扫描指针,用于记录上次替换后下一页框的位置;每页的页表项设一个引用位;每访问一页,其“引用位”赋值为1。淘汰时,扫描循环队列,若引用位为0则淘汰该页;若引用位为1则改为0,继续扫描下一页。
#include "stdio.h"
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#ifndef NULL
#define NULL 0
#endif
#define INVALID -1 //-1表示缺页
//页表结构
typedef struct pl_type{
int pn; //页号
int fn; //页框号
int r; //引用位
}pl_type;
//页框链结构
typedef struct fl_type{
int fn; //页框号
int pn; //页号
struc