虚拟页式存储管理(时钟置换策略模拟).docxVIP

虚拟页式存储管理(时钟置换策略模拟).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《操作系统》综合实训项目设计文档 基本信息 项目名称:页式虚拟存储管理系统(时钟置换策略) 完成人姓名: 学号: 完成日期: 实验内容与目的 加深理解页式虚拟存储管理的概念和原理。 掌握页式存储管理中存储分配(和回收)方法; 深入了解页式虚拟存储管理中地址重定位(即地址映射)方法。 深入理解段页式虚拟存储管理中缺页中断处理方法 主要设计思路和流程图 用结构体定义了页框有数据域、状态位、在此页框存放的页的页号,用结构体定义主存(全局变量),包含32个页框,最后用结构体定义页表项,页表用页表项的数组(全局变量)来表示。设置全局变量k用来定位clock策略的指针。 用随机数将内存和页表进行初始化,使得内存中有部分页框被占用,部分没有被占用,内存分布情况占用OCCUPY表示,未被占用NULL表示。 函数reserch查询页表中页号所对应的页框号。函数find用来查询页表中页号所对应的表项transfrom函数用来生成一定范围的逻辑地址并转换为所对应的物理地址。dispatch函数用来给进程中加载所需要用到的页。并用clock策略替换已满驻留集中的页。最后,用release函数释放进程所占用的空间并将页表和内存改变为初始化的状态。 主要数据结构及其说明 typedef struct page//内存中的页框 { int ID;//页框中存放的页的编号 int data[pageMax];//页中的数据 char state;//页框的状态 }page; typedef struct memory//主存定义 { page No[32];//主存中有32个页 }memory; typedef struct info//页表项 { int p;//页表项修改位 int ID;//在内存中页的页号 int zhenhao;//内存中的页号所在的页框号 }info; 程序运行时的初值和运行结果 2 源程序并附上注释【可是另一个源程序文件,在此应说明该文件名】 #includestdio.h #includestdlib.h #includemath.h #includetime.h # define pageMax 2048 typedef struct page//内存中的页框 { int ID;//页框中存放的页的编号 int data[pageMax];//页中的数据 char state;//页框的状态 }page; typedef struct memory//主存定义 { page No[32];//主存中有32个页 }memory; typedef struct info//页表项 { int p;//页表项修改位 int ID;//在内存中页的页号 int zhenhao;//内存中的页号所在的页框号 }info; info pagetable[8];//8项的页表全局变量 memory zhaoke;//声明主存全局变量 int k=0;//clock算法所用到的指针全局变量 int initi()//初始化内存和页表 { srand((int)time(NULL)); int amount=rand()%24,i; for(i=0;i32;i++) { pagetable[i].p=0; pagetable[i].ID=-1; pagetable[i].zhenhao=-1; } for(i=0;i32;i++) { zhaoke.No[i].state=N; } for(i=0;iamount;i++) { zhaoke.No[rand()%32].state=Y; } } int print()//打印内存分配情况 { int i; printf(**********1加载进程****2撤销进程****3转换逻辑地址*****4退出********\n); printf(内存页分配情况:); for(i=0;i32;i++) { if(i%4==0) { printf(\n); printf(\n|); } if(zhaoke.No[i].state==N) printf(\tNULL \t|); if(zhaoke.No[i].state==Y) printf( OCCUPY\t|); } printf(\n); } int reserch(int yehao)//根据页号查询页表反回所对应的页框号,若没有则返回-1 { int i; for(i=0;i8;i++) { if(yehao==pagetable[i].

文档评论(0)

35425 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档