操作系统实验报告-页式虚拟存储管理中地址转换和缺页中断[精品].doc

操作系统实验报告-页式虚拟存储管理中地址转换和缺页中断[精品].doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验报告-页式虚拟存储管理中地址转换和缺页中断[精品]

实验四 页式虚拟存储管理中地址转换和缺页中断 一.实验目的 (1)深入了解存储管理如何实现地址转换。 (2)进一步认识页式虚拟存储管理中如何处理缺页中断。 二.实验内容 编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。 三.实验原理 页式存储管理把内存分割成大小相等位置固定的若干区域,叫内存页面,内存的分配以“页”为单位,一个程序可以占用不连续的页面,逻辑页面的大小和内存页面的大小相同,内外存的交换也以页为单位进行,页面交换时,先查询快表,若快表中找不到所需页面再去查询页表,若页表中仍未找到说明发生了缺页中断,需先将所需页面调入内存再进行存取。 四.实验部分源程序 #define size 1024//定义块的大小,本次模拟设为1024个字节。 #include stdio.h #include string.h #include conio.h struct plist { int number; //页号 int flag; //标志,如为1表示该页已调入主存,如为0则还没调入。 int block; //主存块号,表示该页在主存中的位置。 int modify; //修改标志,如在主存中修改过该页的内容则设为1,反之设为0 int location; //在磁盘上的位置 }; //模拟之前初始化一个页表。 struct plist p1[7]={{0,1,5,0,010},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6,0,-1,0,125}}; //命令结构,包括操作符,页号,页内偏移地址。 struct ilist { char operation[10]; int pagenumber; int address; }; //在模拟之前初始化一个命令表,通过程序可以让其顺序执行。 struct ilist p2[12]={{+,0,72},{5+,1,50},{*,2,15},{save,3,26}, {load,0,56},{-,6,40},{+,4,56},{-,5,23}, {save,1,37},{+,2,78},{-,4,1},{save,6,86}}; main() { printf( 模拟页式虚拟存储管理中硬件的地址转换和用先进先出调度算法处理缺页中断\n); int i,lpage,pflage,replacedpage,pmodify; int p[4]={0,1,2,3}; int k=0; int m=4; long memaddress; for(i=0;i12;i++)//作业执行指令序列,12个 { lpage=p2[i].pagenumber;//获取页号 pflage=p1[lpage].flag;//标志,是否在内存中 printf(%s,%d,%d,p2[i].operation,p2[i].pagenumber,p2[i].address); printf( 在主存块%d中执行 ,lpage); if(pflage==0)//如果页面不在内存中 { printf(把页号%d,lpage);//置换 replacedpage=p[k]; pmodify=p1[replacedpage].modify; if(pmodify==1) printf(***放在页号%d的位置,replacedpage); else printf(放在页号%d的位置执行,replacedpage); p[k]=lpage; k=(k+1)%m; p1[lpage].flag=1;//标志位改为1 p1[lpage].block=p1[replacedpage].block; p1[replacedpage].block=-1; p1[replacedpage].flag=0; p1[replacedpage].modify=0; } memaddress=p1[lpage].block*size+p2[i].address; if(p2[i].operation==save) p1[lpage].modify=1; printf(\n 物理地址为 %ld\n,memaddress); } } 五,实验结果与体会 我的体会: 下面是余秋雨经典励志语录,欢迎阅读。 不需要的朋友可以编辑删除!!    关于年龄   1.一个横贯终生的品德基本

文档评论(0)

aena45 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档