本文主要是介绍头歌页面置换算法第4关:计算CLOCK算法缺页率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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; //页号struct fl_type *next; //链接指针
}fl_type;//定义结构变量
pl_type pl[512];
fl_type fl[512],*head;int page[512]; //访问串(存放每条指令的页号)
int TOTAL_PAGES; //访问串长度
int diseffect; //页故障数void initialize(i
这篇关于头歌页面置换算法第4关:计算CLOCK算法缺页率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!