基于时钟策略的页面置换精选.docx

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

《操作系统》综合实训项目设计文档【大纲】(不用打印,提交电子稿即可!)基本信息项目名称:虚拟页式存储管理系统完成日期:2017/6/6实验内容与目的实验目的:1.加深理解页式虚拟存储管理的概念和原理。2.掌握页式存储管理中存储分配(和回收)方法;3.深入了解页式虚拟存储管理中地址重定位(即地址映射)方法。4.深入理解段页式虚拟存储管理中缺页中断处理方法。实验内容:编写程序完成页式虚拟存储管理存储分配、地址重定位和缺页中断处理。1.为一个进程的内存申请分配内存,当一个进程(完成)结束时回收内存;2.对一个给定逻辑地址,判断其是否缺页,若不不缺页,则映射出其物理地址;3.若缺页则进行缺页中断处理。假定内存64K,内存块(页框)2K,进程逻辑地址空间最大128K。假设进程运行前未预先装入任何页。进程驻留集的大小固定为16 K,页面淘汰使用进程驻留集内的CLOCK策略。输出每次存储分配/回收时,内存自由块分布情况、相关进程的页表信息。主要设计思路和流程图1.采用链表完成设计,主要设计两个链表,一个单链表,一个循环链表,其中单链表用于存放申请的页面,循环链表用来存放在驻留集中的页面2内存为64K,页面为2K,所以用了6*6的位示图表示内存情况3.申请页面时输入页表信息后,将位示图中对应的位置改为14.地址置换时,将逻辑地址除以页长,用商在页表中找到对应的块号,用余数加上块号乘以页长5.页面置换时,每次换进来的页面将其访问位置为1,下一个节点的时钟位置为1,本节点的时钟位置为0.若是遇到驻留集已经有的页面,则将此页面的访问为置为1.然后页面置换时,从时钟位开始遍历,直到遇到访问位为0的页面,将其置换出来6.撤销一个页面时,将其移出链表,并将位示图中对应的位置置为0主要数据结构及其说明typedef struct node{ int page; int block; int flag;//是否在内存中 int state;//是否在驻留集中 int visit;//访问位 int n;//换进的标zhi struct node *next;}LNode,*LinkList;int g[5][5];//位示图;int Clock(LinkList L,LNode *p,LinkList H);//时钟调度LinkList Create()//创建页面void adr(LinkList L,LinkList Head)//地址转换LinkList CreateSet()//创建驻留集中的页面void Recy(LinkList L,int a[5][5])//页面的回收程序运行时的初值和运行结果源程序并附上注释【可是另一个源程序文件,在此应说明该文件名】#includestdio.h#includestdlib.h#includemalloc.htypedef struct node//定义页表{ int page; int block; int flag;//是否在内存中 int state;//是否在驻留集中 int visit;//访问位 int n;//换进的标zhi struct node *next;}LNode,*LinkList;int g[5][5];//位示图;int Clock(LinkList L,LNode *p,LinkList H);//时钟算法LinkList Create()//建立存放页面的链表{ LinkList head; LNode *r,*s; int p,b,f,n,i=0; r=head=(LinkList)malloc(sizeof(LNode)); printf(输入申请的页数:); scanf(%d,n); printf(\n请分别输入页表的页号及块号(-1表示空):\n); printf(\n页号 | 块号\n); while(in) { scanf(%d,p); scanf(%d,b); s=(LinkList)malloc(sizeof(LNode)); s-page=p; s-block=b; s-state=0; s-flag=1; s-visit=0; s-n=0; r-next=s; r=s; i++; } if(r!=NULL)r-next=NULL; return head;}void PrintfClock(LinkList L)//打印驻留集中的

文档评论(0)

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

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

1亿VIP精品文档

相关文档