南京邮电大学实验报告模版 2 - 图文 下载本文

int curpage;

for(int i=0;i<320;i++) {

if(i0==0) getch( ); pc=temp[i]; curpage=pc/10;

exist = findExist(curpage); if(exist==-1) {

space = findSpace ( ); if(space != -1) {

block[space].pagenum = curpage; display( ); n=n+1; }

else {

for(int k=0;k

for(int j=i;j<320;j++) {

if(block[k].pagenum!= temp[j]/10) {

block[k].accessed = 1000; }//将来不会用,设置为一个很大数 else {

block[k].accessed = j; break;

} } }

position = findReplace( );

block[position].pagenum = curpage; display( ); n++;

- 6 -

} } }

cout<<\缺页次数:\

cout<<\缺页率:\}

//------------------------------------------------------------- void LRU( ) {

int exist,space,position ; int curpage;

for(int i=0;i<320;i++) {

if(i0==0) getch( ); pc=temp[i]; curpage=pc/10;

exist = findExist(curpage); if(exist==-1) {

space = findSpace( ); if(space != -1) {

block[space].pagenum = curpage; display( ); n=n+1; }

else {

position = findReplace( );

block[position].pagenum = curpage; display( ); n++; } }

else block[exist].accessed = -1;//恢复存在的并刚访问过的BLOCK中页面accessed为-1 for(int j=0; j<4; j++)

- 7 -

{block[j].accessed++;} }

cout<<\缺页次数:\

cout<<\缺页率:\}

//------------------------------------------------------------- void FIFO( ) {

int exist,space,position ; int curpage;

for(int i=0;i<320;i++) {

if(i0==0) getch( ); pc=temp[i]; curpage=pc/10;

exist = findExist(curpage); if(exist==-1) {

space = findSpace( ); if(space != -1) {

block[space].pagenum = curpage; display( ); n=n+1; }

else {

position = findReplace( );

block[position].pagenum = curpage; display( ); n++;

block[position].accessed--; } }

for(int j=0; j

- 8 -

block[j].accessed++; }

cout<<\缺页次数:\

cout<<\缺页率:\}

//************************************************************* void main( ) {

int select;

cout<<\请输入第一条指令号(0~320):\ suijishu( );

cout<<\对应的调用页面队列*******\ pagestring( ); do {

cout<<\ cout<<\ 2:LRU 3:FIFO 4:退出-----\ cout<<\ cout<<\ 请选择一种页面置换算法:\ cin>>select;

cout<<\ init( );

switch(select) {

case 1:cout<<\最佳置换算法OPT:\ cout<<\ OPT( ); break;

case 2:cout<<\最近最久未使用置换算法LRU:\ cout<<\ LRU( ); break;

case 3:cout<<\先进先出置换算法FIFO:\ cout<<\ FIFO( ); break;

- 9 -

default: ; } }while(select!=4); } 实验结果: - 10 -