/*
$ 本程序用来模拟虚拟页式存储管理中的页面置换
& written by 计算机信息工程学院
02级师范【1】班 王瑞珩
学号: 026210104
@2004.12.18
*/
/*
$ 本程序用来模拟虚拟页式存储管理中的页面置换 &
$ 快表页面固定为4块,要求从键盘输入N个页面号 &
$ 输出每次快表页面的内容和缺页次数,缺页率 &
*/
#include
#define PAGES 4 /* 快表页面数 */
#define N 16 /*最多输入的页面号*/
int pages[PAGES][2]; /*page[i][0]保存页面号,
page[i][1]保存页面存留时间*/
int queue[N]; /*页面号数组*/
/*------------初始化:快表和页面号数组++++++++++++++*/
void initialise(void)
{
int i;
for(i=0;i0&&num-1) /*若已经存在,修改相应序号的属性值*/
pages[temp][1]=1;
else /*若不存在,修改返回序号的内容,并修改属性值*/
{
(* lack_page)++;
pages[0-temp-1][0]=queue[i];
pages[0-temp-1][1]=1;
}
printf("第%2d个页面换进时快表的内容:",i+1);
display_pages();
i++;
}
}
int main(void)
{
int lack=0;
float totle_page=0;
initialise();
totle_page=(float)input_pages();
LRU(&lack);
printf("缺页数为:%d\n",lack);
printf("缺页率为:%0.3f\n",lack/totle_page);
}