南邮通达课程设计.doc

上传人:夏** 文档编号:558722536 上传时间:2022-12-10 格式:DOC 页数:20 大小:458.60KB
返回 下载 相关 举报
南邮通达课程设计.doc_第1页
第1页 / 共20页
南邮通达课程设计.doc_第2页
第2页 / 共20页
南邮通达课程设计.doc_第3页
第3页 / 共20页
南邮通达课程设计.doc_第4页
第4页 / 共20页
南邮通达课程设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《南邮通达课程设计.doc》由会员分享,可在线阅读,更多相关《南邮通达课程设计.doc(20页珍藏版)》请在金锄头文库上搜索。

1、通达学院专业课程设计I题 目1实现页面调度算法NRU题 目2数字式定时器专 业计算机科学与技术学 生 姓 名张 娟班 级 学 号11006605指 导 教 师戴 华指 导 单 位计算机学院、软件学院日 期2014.6.9-2014.6.19教师评语同学出勤率(满勤、较高、一般,较低),学习态度(端正、较端正、一般、较差),程序设计基础(好、较好、一般、较差),演示程序(已经、没有)达到了基本要求,算法设计(好、较好、一般),界面友好程度(好、较好、一般),答辩过程中回答问题(准确、较准确、错误率较高),撰写报告格式(规范、一般)、内容(丰满、简单)、表述(清晰、一般、不清楚),(圆满、较好、基

2、本)完成了课题任务。 教师签名: 年 月 日成绩评定备 注题目1 NRU算法一、 课题内容和要求学习虚拟存储机制中页面调度算法,通过编程模拟实现页面调度的NRU算法(最近最不经常使用算法)。页面置换算法是指在需要调入页面且内存已满时,确定将要换出页面的算法。置换算法的好坏直接影响系统的性能,不适当得算法可能导致进程发生“抖动”,又称“颠簸”。NRU为操作系统请求分页存储管理中的页面淘汰算法,又名近似的LRU置换算法。NRU算法需要给每个物理块增加一个附加位,称为使用位u,当某一页首次装入内存,该物理块的使用位设为1,当该物理块被使用时,他的使用位也设为1。对于页面置换算法,把用于替换的物理块集

3、合看作是一个循环缓冲区,并且有一个指针与之关联。当需要进行页面置换时,如果指针所在的页面u=0,则将它置换,然后把指针指向下一个物理块,否则把该块的使用位置为0,然后跳过该块继续扫描,知道找到一个u=0的物理块为止。二、概要设计 进入NRU1、NRU流程图获得当前的页面号是否在内存中YN内存块是否装满NY检查当前指针指向的页面Interview位的值为0指针前移1位为1将页面装入内存块将新页面置入该页面中,指针前移1位 输出内存信息 结束2、NRU置换算法:NRU算法需要给每个物理块增加一个附加位,称为使用位u,当某一页首次装入内存,该物理块的使用位设为1,当该物理块被使用时,他的使用位也设为

4、1。对于页面置换算法,把用于替换的物理块集合看作是一个循环缓冲区,并且有一个指针与之关联。当需要进行页面置换时,如果指针所在的页面u=0,则将它置换,然后把指针指向下一个物理块,否则把该块的使用位置为0,然后跳过该块继续扫描,知道找到一个u=0的物理块为止。例如内存块数为3,作业的页面走向为:5,8,910,43,33,56,78内存及控制信息输入串指针移动情况及替换信息内存访问位指针5将5放入第一个内存块中,访问位置1,指针下移5100内存访问位8将5放入第二个内存块中,访问位置1,指针下移51810内存访问位9将9放入第三个内存块中,访问位置1,指针下移,这时指针循环往下指向第一个内存块5

5、18191内存访问位10内存中没有10,需要找到一个内存块放入10,指针所在的访问位为1,则将其变成0,再下移,继续寻找访问位为0的。当指针循环再次指向第一个内存块时,访问位为0,故替换,指针下移1018090内存访问位43内存中没有43,需要找到一个内存块放入43,指针所在的访问位为0,故替换,指针下移10143190内存访问位33内存中没有33,需要找到一个内存块放入33,指针所在的访问位为0,故替换,指针下移101431331内存访问位56内存中没有56,需要找到一个内存块放入56,指针所在的访问位为1,则将其变成0,再下移,继续寻找访问位为0的。当指针循环再次指向第一个内存块时,访问位

6、为0,故替换,指针下移561430330内存访问位78内存中没有78,需要找到一个内存块放入78,指针所在的访问位为0,故替换,指针下移561781330二、 详细设计 实现课题的源代码:#include#include#include#includevoid zhihuan()printf(nn);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生n); printf(缺页

7、中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其n);printf(移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算n);printf(法。n);printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(nn);/界面设置,简单介绍页面置换算法void introduce () printf(*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+

8、*+*+*+*+*+*+*+*+*+*+*+*+n); printf( NRU算法简介 n); printf(NRU算法需要给每个物理块增加一个附加位,称为使用位u,当某一页首次装入内存,该物理n); printf(块的使用位设为1,当该物理块被使用时,他的使用位也设为1。对于页面置换算法,把用于 n); printf(替换的物理块集合看作是一个循环缓冲区,并且有一个指针与之关联。当需要进行页面置换 n); printf(时,如果指针所在的页面u=0,则将它置换,然后把指针指向下一个物理块,否则把该块的 n); printf(使用位置为0,然后跳过该块继续扫描,知道找到一个u=0的物理块为止。

9、 nn);printf(*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+n);void designBy()/设计者信息printf(n);printf( 课程设计:页面置换算法 n);printf( 学号:11006605 n);printf( 姓名:张娟 n);printf(n);int OutBlockofM(int *BlockofMemory,int n1,int flag)/输出内存块页面序号int i;printf(内存中页块为:t);for(i=0;in1;i+) /

10、循环三次,将前n1个页面装入内存块中printf(%dt,BlockofMemoryi);printf(t);if(flag!=-1) /判断标志位是否不等于-1,若不等于-1则淘汰该页面。printf(淘汰页面号为:%d,flag);printf(n);return -1;void QuitBofM(int *BlockofMemory,int n1)/内存块页面序号清零int i;for(i=0;in1;i+)BlockofMemoryi=0;int PageInBofM(int PageNum,int *BlockofMemory,int n1)/页是否在内存中,若有相等的页,则不置换,

11、不等就置换。int i;for(i=0;in1;i+)if(PageNum=BlockofMemoryi)return 1;return 0;void NRU(int *BlockofMemory,int *PageNumofR,int n1,int n2,int flag,int count)int* Interview;/访问位int i,j=0,k;Interview=(int *)malloc(n1*sizeof(int);动态申请4*n1字节的内存空间printf( n);printf(n);printf(简单的NUR页面置换算法: n);printf( n);printf(n);f

12、or(i=0;in1;i+)/将页面号调入到内存中,并且访问位置1BlockofMemoryi=PageNumofRi;Interviewi=1;flag=OutBlockofM(BlockofMemory,n1,flag);for(i=n1;in2;i+) if(!PageInBofM(PageNumofRi,BlockofMemory,n1)/页不在内存中,进行置换for(k=0;kn1;k+)if(Interviewj=0)/若访问位为0,则将页面调入进来break;elseInterviewj=0;/若访问位不为0,则将访问位置为0j+;if(j=n1)j=0;Interviewj=1;flag=BlockofMemo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号