⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11.cpp

📁 动态回收内存的各种碎片(内碎片和外碎片)。武汉理工大学的操作系统实验。
💻 CPP
字号:
struct
{int lnumber; /*页号*/
int flag; /*表示该页是否在主存,"1"表示在主存中,"0"表示不在*/
int pnumber; /*该页所在主存块的块号*/
int write; /*该页是否被修改过,"1"表示修改过,"0"表示没有修改过*/
}page[10]; /*页表定义*/
int p[4]; /*存放在主存中页的页号的循环队列*/
int head; /*在主存中的页按先进先出放在数组p中,队头head*/
page_interrupt(lnumber)
int lnumber;
{
/*请考生完成!!!*/
}/*缺页中断函数结束*/
command(lnumber)
int lnumber;
{
kk: if(lnumber>=10)
{ printf("不存在该页\n");
return;
}
if(page[lnumber].flag==1)/*页在主存*/
printf("页号%d对应主存块是:%d\n",lnumber,page[lnumber].pnumber);
else
{page_interrupt(lnumber);/*缺页中断*/
goto kk;
}
}/*指令执行函数结束*/
main( )
{int lnumber,flag,pnumber,write,dnumber;
unsigned laddress;
int i;
/*输入页表的信息,创建页表page*/
for(i=0;i<10;i++)
{page[i].lnumber=i;
page[i].pnumber=0;
page[i].flag=0;
page[i].write=0;
}
for(i=0;i<4;i++)
{page[i].pnumber=i+2;
page[i].flag=1;
p[i]=i;
}
for(i=0;i<4;i=i+2) 
page[i].write=1;
printf("输入页号:");
scanf("%d",&lnumber);
command(lnumber);
}/*main( )函数结束*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -