页式虚拟存储管理
page[i].lnumber=lnumber;
page[i].flag=0;
page[i].write=0;
page[i].dnumber=dnumber;
i++;
cout<<"请输入页号和辅存地址:";
cin>>lnumber>>dnumber;
}
//预先将输入的页调入主存块中
page_length=i;
cout<<"输入主存块号(输入少于或者等于"<<i<<"个数据,若块号数为-1,则结束输入):";
cin>>pnumber;
cin.ignore ();
m=0;
head=0;
while(m<length&&pnumber!=-1)
{
if(m<i)
{
page[m].pnumber=pnumber;
page[m].flag=1;//调入主存后,标志为置1
p[m]=m; //记录主存中的页号
m++;
}
cout<<"输入主存块号(输入少于或者等于"<<i<<"个数据,若块号数为-1,则结束输入):";
cin>>pnumber;
cin.ignore ();
}//while
cout<<"输入指令性质(1-修改,0-不需要,其他-结束程序运行)和逻辑地址\n"
<<"逻辑地址最大能支持2的16次方-1=65535。\n";
cout<<"输入指令性质:";
cin>>write;
cin.ignore ();
cout<<"输入逻辑地址:";
cin>>laddress;
cin.ignore ();
while(write==0||write==1)
{
command(laddress,write); //将输入的逻辑地址转换成物理地址 cout<<"输入指令性质:";
cin>>write;