模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx

上传人:b****2 文档编号:4491208 上传时间:2023-05-03 格式:DOCX 页数:15 大小:127.75KB
下载 相关 举报
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第1页
第1页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第2页
第2页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第3页
第3页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第4页
第4页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第5页
第5页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第6页
第6页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第7页
第7页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第8页
第8页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第9页
第9页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第10页
第10页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第11页
第11页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第12页
第12页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第13页
第13页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第14页
第14页 / 共15页
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx

《模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断Word文档下载推荐.docx

{

private:

stringope;

longintpage;

longintunit;

public:

ins(){}

ins(stringo,longintp,longintu):

ope(o),page(p),unit(u){}

voidsetope(stringo){ope=o;

}

voidsetpage(longintp){page=p;

voidsetunit(longintu){unit=u;

stringgetope(){returnope;

longintgetpage(){returnpage;

longintgetunit(){returnunit;

};

classwork

longintPage;

intsym;

longintinum;

longintonum;

work(){}

work(longintP,ints,longinti,longinto):

Page(P),sym(s),inum(i),onum(o){}

voidsetPage(longintP){Page=P;

voidsetsym(ints){sym=s;

voidsetinum(longinti){inum=i;

voidsetonum(longinto){onum=o;

longintgetPage(){returnPage;

intgetsym(){returnsym;

longintgetinum(){returninum;

longintgetonum(){returnonum;

voiddiaodu(work*w,ins*i,intnumofins)

{for(intj=0;

j<

numofins;

j++)

longinttempofk;

longinta=i[j].getpage();

for(intk=0;

k<

7;

k++)//7是页表的页数

if(w[k].getPage()!

=a)

continue;

else

{

tempofk=k;

break;

}

if(w[tempofk].getsym()==1)

cout<

<

"

绝对地址:

w[tempofk].getinum()*128+i[j].getunit()<

"

磁盘地址为:

w[tempofk].getonum()<

操作为:

i[j].getope()<

endl;

elsecout<

*"

发生缺页中断"

}

}

intmain()

{

ins*INS=newins[12];

INS[0].setope("

+"

);

INS[0].setpage(0);

INS[0].setunit(70);

INS[1].setope("

INS[1].setpage

(1);

INS[1].setunit(50);

INS[2].setope("

×

INS[2].setpage

(2);

INS[2].setunit(15);

INS[3].setope("

存"

INS[3].setpage(3);

INS[3].setunit(21);

INS[4].setope("

取"

INS[4].setpage(0);

INS[4].setunit(56);

INS[5].setope("

-"

INS[5].setpage(6);

INS[5].setunit(40);

INS[6].setope("

移位"

INS[6].setpage(4);

INS[6].setunit(53);

INS[7].setope("

INS[7].setpage(5);

INS[7].setunit(23);

INS[8].setope("

INS[8].setpage

(1);

INS[8].setunit(37);

INS[9].setope("

INS[9].setpage

(2);

INS[9].setunit(78);

INS[10].setope("

INS[10].setpage(4);

INS[10].setunit

(1);

INS[11].setope("

INS[11].setpage(6);

INS[11].setunit(84);

work*W=newwork[7];

ifstreamin("

g:

//operate1.txt"

longintp;

ints;

longinti;

longinto;

for(intjj=0;

jj<

7;

jj++)

in>

>

p;

in>

s;

i;

o;

W[jj].setPage(p);

W[jj].setsym(s);

W[jj].setinum(i);

W[jj].setonum(o);

diaodu(W,INS,12);

五.结果显示

操作系统实验二〔第二题〕

一.

用先进先出〔FIFO〕

九.程序清单

/操作系统实验二.cpp:

intchange;

work(longintP,ints,longinti,intc,longinto):

Page(P),sym(s),inum(i),change(c),onum(o){}

voidsetchange(intc){change=c;

intgetchange(){returnchange;

{

constintm=4;

intp[m]={0,1,2,3};

intk=0;

inttempofins=12;

for(intii=0;

ii<

tempofins;

ii++)

intL=i[ii].getpage();

for(intiii=0;

iii<

iii++)

if(w[iii].getPage()!

=L)

elseif(w[iii].getsym()==1)

if(i[ii].getope()=="

w[iii].setchange

(1);

cout<

绝对地址谓:

w[iii].getinum()*128+i[ii].getunit()<

w[iii].getinum()<

i[ii].getunit()<

else{

产生中断"

intj=p[k];

w[j].setsym(0);

w[j].setinum(-1);

w[L].setsym

(1);

w[L].setinum(rand()%20+10);

if(w[j].getchange()==1)

cout<

第"

页需要重新写入磁盘中"

第"

L<

页被调入主存"

p[k]=L;

k=(k==m-1)?

0:

(k+1);

调入主存的页:

;

for(intiiii=0;

iiii<

m;

iiii++)

intkk=p[iiii];

w[kk].getPage()<

endl<

...................................................."

//operate.txt"

intc;

c;

W[jj].setchange(c);

十.程序结果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2