資源簡介
第一題:模擬分頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和產(chǎn)生缺頁中斷。
第二題:用先進(jìn)先出(FIFO)頁面調(diào)度算法處理缺頁中斷。

代碼片段和文件信息
#include?
#include?“l(fā)ist“
using?namespace?std;
#define?N?11
#define?M?12
#define?MEMORYBLOK?10
#define?LENGTH?128
struct?page?{
int?number;
int?flag;
int?frame;
int?location;
int?change;
};
struct?action?{
char?operate;
int?pageNum;
int?offset;
};
struct?page?pageTable[N];
list?actionForm;
void?init()?{
page?page0?=?{005110};
pageTable[0]?=?page0;
page?page1?=?{118120};
pageTable[1]?=?page1;
page?page2?=?{219130};
pageTable[2]?=?page2;
page?page3?=?{311210};
pageTable[3]?=?page3;
page?page4?=?{40-1220};
pageTable[4]?=?page4;
page?page5?=?{50-1230};
pageTable[5]?=?page5;
page?page6?=?{60-11210};
pageTable[6]?=?page6;
//
pageTable[7]?=?page6;
pageTable[8]?=?page6;
pageTable[9]?=?page6;
pageTable[10]?=?page6;
//對(duì)PQ的初始化
/*for(int?i=0;?i Q[i]?=?-1;
}
for(i=0;?i P[i]?=?-1;
}
for(i=0;i if(pageTable[i].flag?==?1){
P[K]=i;
K?=?(K+1)%MEMORYBLOK;
}
}
for(i=0;?i if(pageTable[i].flag?==?1)?{
int?frame?=?pageTable[i].frame;
Q[frame]?=?pageTable[i].number;
}
}*/
action?a1={‘+‘170};
action?a2={‘+‘150};
action?a3={‘*‘215};
action?a4={‘s‘321};
action?a5={‘g‘056};
action?a6={‘-‘640};
action?a7={‘y‘4.53};
action?a8={‘+‘523};
action?a9={‘s‘137};
action?a10={‘g‘278};
action?a11={‘+‘41};
action?a12={‘s‘684};
actionForm.push_back(a1);
actionForm.push_back(a2);
actionForm.push_back(a3);
actionForm.push_back(a4);
actionForm.push_back(a5);
actionForm.push_back(a6);
actionForm.push_back(a7);
actionForm.push_back(a8);
actionForm.push_back(a9);
actionForm.push_back(a10);
actionForm.push_back(a11);
actionForm.push_back(a12);
}
void?run()?{
while(?!actionForm.empty()?)?{
action?a?=?actionForm.front();
cout<<“*****************************************************“< if(a.operate==‘s‘)
cout<<“操作:存“<<“ 頁號(hào):“< else?if(a.operate==‘g‘)
cout<<“操作:取“<<“ 頁號(hào):“< else?if(a.operate==‘y‘)
cout<<“操作:移位“<<“?頁號(hào):“< else
cout<<“操作:“<
int?pageNum?=?a.pageNum;
//如果不在主存中
if?(pageTable[pageNum].flag?==?0)?{
cout<<“*“< }
//計(jì)算絕對(duì)地址
else{
int?result;
result?=?pageTable[pageNum].frame*LENGTH?+?a.offset;
cout<<“絕對(duì)地址為:“<ame<<“*“<
pageTable[pageNum].change?=?1;
}
actionForm.pop_front();
}
}
main()?{
init();
run();
return?0;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2858??2009-12-24?19:33??1.cpp
?????文件???????4280??2009-12-24?19:33??2.cpp
-----------?---------??----------?-----??----
?????????????????7138????????????????????2
- 上一篇:操作系統(tǒng)第五版第一章到第五章答案
- 下一篇:西門子tc35資料包含引腳
評(píng)論
共有 條評(píng)論