实验å›?/p>
虚拟存储器管理实éª?/p>
◆实验名称:
存储器管理实éª?/p>
◆仪器、设备:
计算æœ?/p>
◆参考资料:
操作系统实验指导ä¹?/p>
◆实验目的:
设计一个请求页式存储管理方案,并编写模拟程序实现ã€?/p>
◆实验内容:
编写程序用来模拟虚拟页式存储管理中的页面置换
要求ï¼?/p>
1.
快表页面固定ä¸?/p>
4
�/p>
2.
从键盘输å…?/p>
N
个页面号
3.
输出每次物理块中的页面号和缺页次数,缺页çŽ?/p>
◆实验原理、数据(程序)记录:
#define PAGES 4
/*
物理块数
*/
#define N 16
/*
最多输入的页面å�?/p>
*/
int pages[PAGES][2];
/*page[i][0]
保存页面号,
page[i][1]
保存页面存留时间
*/
int queue[N];
/*
页面号数ç»?/p>
*/
void initialise(void)
/*------------
初始化:快表和页面号数组
++++++++++++++*/
{
int i;
for(i=0;i<N;i++)
queue[i]=-1;
for(i=0;i<PAGES;i++)
{
pages[i][0]=-1;
pages[i][1]=0;
}
}
int is_page_exist(int page) /*
若还有空页,返回空页序号的相反数
-1
若存在,返回该页的序
号若不存在,返回需要替换页面序号的相反æ•?/p>
-1*/
{
int max;
int replace;
int i=0;
max=pages[0][1];
replace=0;
for(;i<PAGES;i++)
pages[i][1]++;
i=0;
while(i<PAGES&&pages[i][0]!=-1&&pages[i][0]!=page)
{
if(max<pages[i][1])
{
max=pages[i][1];
replace=i;
}
i++;
}
if(i==PAGES)
return (0-replace-1);
else if(pages[i][0]==page)