您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > 操作系统-页式地址重定位模拟实验报告
操作系统-页式地址重定位模拟实验报告一、实验目的:1、用高级语言编写和调试模拟实现页式地址重定位。2、加深理解页式地址重定位技术在多道程序设计中的作用和意义。二、实验原理:当进程在CPU上运行时,如指令中涉及逻辑地址时,操作系统自动根据页长得到页号和页内偏移,把页内偏移拷贝到物理地址寄存器,再根据页号,查页表,得到该页在内存中的块号,把块号左移页长的位数,写到物理地址寄存器。三、实验内容:1、设计页表结构2、设计地址重定位算法3、有良好的人机对话界面四、存储结构typedefstructPageTable{intpage_num;intpic_num;}PageTable;PageTablePT[N];typedefstructLogicalAdd{intpage_num;intpage_add;}LogicalAdd;LogicalAddLA;intPage_length;//页长intPage_num;//页数intProcess;//进程大小intAddress;//逻辑地址五、函数列表Input();//输入Init();//初始化Translate();//生成物理地址Output();//输出Main();//主函数六、运行结果截图:(1)输入(2)查看页表(3)查看物理地址(4)退出七、源程序代码:#includeiostream#includecstdlib#includestring#includetime.husingnamespacestd;#defineN50typedefstructPageTable{intpage_num;intpic_num;}PageTable;PageTablePT[N];typedefstructLogicalAdd{intpage_num;intpage_add;}LogicalAdd;LogicalAddLA;intPage_length;//页长intPage_num;//页数intProcess;//进程大小intAddress;//逻辑地址voidInput(){cout输入进程长度:;cinProcess;cout输入页长:;cinPage_length;cout请输入逻辑地址:;cinAddress;}intInit(){srand(time(0));inti,temp;intsum=1;Page_num=Process/Page_length+1;//coutnum=Page_numendl;PT[0].pic_num=1;for(i=0;iPage_num;i++){PT[i].page_num=i;temp=rand()%3+1;sum+=temp;PT[i].pic_num+=sum;//coutPT[i].pic_numendl;}LA.page_num=Address/Page_length;if(LA.page_num=Page_num){cout所查逻辑地址不在该页内,初始化失败!endl;return-1;}LA.page_add=Address%Page_length;}intTranslate(){inti=0;intres;while(iPage_num){if(PT[i].page_num==LA.page_num){res=PT[i].pic_num;break;}elsei++;}if(i=N)return-1;returnres*Page_length+LA.page_add;}voidOutput(intres){if(res==0){cout构造的页表如下:endl;cout页号\t块号endl;for(inti=0;iPage_num;i++){coutPT[i].page_num\t;coutPT[i].pic_numendl;}}elsecout物理地址为:resendl;}intmain(){intk;cout\t*************欢迎使用页式地址重定位模拟系统*****************\n;for(;;){cout\t---请输入以下选项---endl;cout1.输入信息;endl2.查看页表;endl3.查看物理地址;endl4.退出;endl;cink;switch(k){case1:Input();if(Init()==-1)return-1;break;case2:Output(0);break;case3:Output(Translate());break;case4:coutO(∩_∩)O谢谢使用,再见!endl;exit(0);break;}}return1;}八、小结通过本次实验,加深了我对于分页式存储管理方式的理解,以及编程实现了页式地址重定位模拟。在编程过程中所遇到的困难不多,为了简化模拟过程,我使用了十进制数来表示各数据(单位字节)。页表的构建上,我是根据输入的页长和进程空间的大小来动态分配空间和页表的表长的,块号的生成用了累加随机数的方式。
本文标题:操作系统-页式地址重定位模拟实验报告
链接地址:https://www.777doc.com/doc-1890704 .html