模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断.docx
- 文档编号:2413401
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:15
- 大小:127.75KB
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断.docx
《模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断.docx》由会员分享,可在线阅读,更多相关《模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断.docx(15页珍藏版)》请在冰点文库上搜索。
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断选择页面调度算法处理缺页中断
操作系统实验二〔第一题〕
一.实验内容
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。
二.实验目的
在电脑系统总,为了提高主存利用率,往往把辅助存储器作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间综合可以超出主存的绝对地址空间。
用这种方法扩充的主存储区成为虚拟存储器。
三.实验题目
模拟分页式存储管理中硬件的地址转换和产生缺页中断。
是否
四.程序清单
//
//操作实验二.cpp:
定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include
#include
#include
usingnamespacestd;
classins
{
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
{
private:
longintPage;
intsym;
longintinum;
longintonum;
public:
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 { 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<<"绝对地址: "< "< "< 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;in>>i;in>>o; W[jj].setPage(p); W[jj].setsym(s);W[jj].setinum(i);W[jj].setonum(o); } diaodu(W,INS,12); } 五.结果显示 操作系统实验二〔第二题〕 一. 用先进先出〔FIFO〕 是否 是 否 否 是 是否 九.程序清单 /操作系统实验二.cpp: 定义控制台应用程序的入口点。 // #include"stdafx.h" #include #include #include usingnamespacestd; classins { 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 { private: longintPage; intsym; longintinum; intchange; longintonum; public: work(){} work(longintP,ints,longinti,intc,longinto): Page(P),sym(s),inum(i),change(c),onum(o){} voidsetPage(longintP){Page=P;} voidsetsym(ints){sym=s;} voidsetinum(longinti){inum=i;} voidsetchange(intc){change=c;} voidsetonum(longinto){onum=o;} longintgetPage(){returnPage;} intgetsym(){returnsym;} longintgetinum(){returninum;} intgetchange(){returnchange;} longintgetonum(){returnonum;} }; voiddiaodu(work*w,ins*i,intnumofins) { constintm=4; intp[m]={0,1,2,3}; intk=0; inttempofins=12; for(intii=0;ii { intL=i[ii].getpage(); for(intiii=0;iii<7;iii++) if(w[iii].getPage()! =L) continue; elseif(w[iii].getsym()==1) { if(i[ii].getope()=="存") w[iii].setchange (1); cout<<"绝对地址谓: "< } else{ cout<<"产生中断"<<"*"< 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<<"第"< p[k]=L; k=(k==m-1)? 0: (k+1); } cout<<"调入主存的页: "; for(intiiii=0;iiii { intkk=p[iiii]; cout< } cout< } } 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: //operate.txt"); longintp; ints; longinti; intc; longinto; for(intjj=0;jj<7;jj++) { in>>p;in>>s;in>>i;in>>c;in>>o; W[jj].setPage(p); W[jj].setsym(s);W[jj].setinum(i);W[jj].setchange(c);W[jj].setonum(o); } diaodu(W,INS,12); } 十.程序结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 分页 虚拟 存储 管理 硬件 地址 转换 中断 选择 页面 调度 算法 处理