ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:185.59KB ,
资源ID:1377347      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1377347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(兰州大学操作系统实验八存储管理模拟题目和答案,实验报告.docx)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

兰州大学操作系统实验八存储管理模拟题目和答案,实验报告.docx

1、实验报告 实验八实验名称:存储管理模拟实验目的:1. 掌握请求分页存储管理系统的基本原理2. 实现一个模拟的虚拟分页存储管理系统实验要求: 编写一个程序,模拟一个虚拟分页存储管理系统。其中,由系统随机产生进程;进程大小、进程到达次序、时间、进程执行轨迹(页面访问顺序)也随机生成,但进程之间必须有并发存在,进程执行时间需有限,进程调度采用时间片轮转算法(以页面模拟) ;rss 驻留集大小物理块分配策略采取固定分配局部置换;分配算法采用按比例分配算法;调页采用请求调页方式;置换分别采用 FIFO、LRU(一直没用) 访问次数 和简单 CLOCK 算法(循环链表)标志 有没有被访问; 驻留集大小可调

2、,观察驻留集大小对缺页率的影响。算法思想:FIFO 先进先出法LRU 最久未使用算法CLOCK 简单时钟算法命中率页面失效次数页地址流(序列) 长度驻留集大小可调,观察驻留集大小对缺页率的影响。结构体定义包含链表:空闲页面表 忙页面表 包含数组:进程数组 页面号数组 页面页面序号页框号单位时间访问次数上次访问时间页面控制结构页面号指针页面控制表表结构 页框号流程图:否是是是开始随机得到进程指令序列为其分配页号分配物理块引用块编号大于物理块?页号在物理块内?选择 FIFO LRU CLOCK 置换算法置换是否完成?结束实验结果分析:观察数据可看出:横向:三种替换算法的命中率由高到底排列应该是LR

3、UCLOCKFIFO。纵向:进程的驻留级越大,其缺页率就越低。实验体会:1. 内存中进程的多少会影响驻留集大小和缺页中断率。如果内存中进程太多,将导致每个进程的驻留集太小,发生缺页中断的概率很大。相应地,系统发生抖动的可能性就会很大。如果在内存中保持太少的活动进程,那么所有活动进程同时处于阻塞状态的可能性就会很大,从而降低处理机的利用率。2. 置换算法的好坏将直接影响系统的性能,不适当的置换算法可能导致系统出现“ 抖动 ”现象。常用的页面置换算法:最佳置换算法、最近最少使用算法、先进先出算法和时钟算法等。最佳置换算法难以实现但可以成为核对其他算法的标准。3. 也应注意负载问题,解决系统应当保持

4、多少个活动进程驻留在内存的问题,即控制多道程序系统的度。当内存中的活动进程数太少时,负载控制将增加新进程或激活一些挂起进程进入内存;反之,当内存中的进程数太多时,负载控制将暂时挂起一些进程,减少内存中的活动进程数。实验代码:#include #include #include #include #define TRUE 1#define FALSE 0#define INVALID -1#define total_instruction 320 /指令流长#define total_vp 32 /页长#define clear_period 50 typedef struct /页面结构int

5、 pn, /页面序号pfn, /页面所在内存区的页框号counter, /单位时间内访问次数time; /上次访问的时间pl_type;pl_type pltotal_vp; /页面结构数组struct pfc_struct /页面控制结构int pn, /页面号pfn; /内存区页面的页框号struct pfc_struct *next; /页面指针,用于维护内存缓冲区的链式结构;typedef struct pfc_struct pfc_type; /主存区页面控制结构别名pfc_type pfctotal_vp, /主存区页面控制结构数组*freepf_head, /主存区页面控制结构的

6、空闲页面头指针*busypf_head, /主存区页面控制结构的忙页面头指针*busypf_tail; /主存区页面控制结构的忙页面尾指针int diseffect; /页错误计数器,初次把页面载入主存时也当做页错误int atotal_instruction; /随即指令流数组int pagetotal_instruction; /指令对应的页面号int offsettotal_instruction; /指令所在页面中的偏移量int initialize(int); /初始化页面结构数组和页面控制结构数组int FIFO(int); /先进先出算法int LRU(int); /最近最久未使

7、用算法int CLOCK(int); /简单时钟(钟表) 算法int main( )int s; /随机数int i;srand(10*getpid(); /*每次运行时进程号不同,用来作为初始化随机数队列的“种子“*/s = (int)(float)(total_instruction-1)*(rand()/(RAND_MAX+1.0);printf(“n-rand instructions queue-n“);for (i=0; iplj.timeMinPn=j;freepf_head= /最久没被访问过的页被释放plMinPn.pfn=INVALID; /最久没被访问过的页被换出主存pl

8、MinPn.time=-1; /最久没被访问过的页的访问时间置为无效freepf_head-next=NULL;plpagei.pfn=freepf_head-pfn; /有空闲页面,把相应的页面换入主存,并把 pfn 改为相应的页框号plpagei.time=CurrentTime; /令访问时间为当前系统时间freepf_head=freepf_head-next; /减少一个空闲页面elseplpagei.time=CurrentTime; /命中则刷新该单元的访问时间CurrentTime+; /系统当前时间加printf(“%6.3ft“,1-(float)diseffect/320

9、);return 0;/简单时钟算法/int total_pf; 用户进程的内存页面数int CLOCK(int total_pf)int i;int usetotal_vp; /使用位int swap;swap=0; /发生替换initialize(total_pf);pfc_type *pnext; /时钟指针pfc_type *head; /队列头指针pnext=freepf_head;head=freepf_head;for(i=0;ipfn=1) /若时钟指针指向的页的使用位为,则改为并跳过usepnext-pfn=0;pnext=pnext-next;if(pnext=NULL)

10、pnext=head; /如果时钟指针到达队列尾部,重新返回头部/换出被替换的页plpnext-pn.pfn=INVALID;swap=1;if(usepnext-pfn=0) /如果使用位为,则换入相应的页plpagei.pfn=pnext-pfn; /页面结构中要标记页框号pnext-pn=pagei; /页面控制结构中要标记页号usepnext-pfn=1; /重置使用位为pnext=pnext-next; /时钟指针下移if(pnext=NULL) pnext=head; /如果时钟指针到达队列尾部,重新返回头部if(swap=0) freepf_head=freepf_head-ne

11、xt; else/页面在主存中useplpagei.pfn=1; /刷新使用位为printf(“%6.3ft“,1-(float)diseffect/320);return 0;/先进先出算法版本/int total_pf; 用户进程的内存页面数/实现细节由 CLOCK 算法退化而来,与 FIFO 同效果int FIFO(int total_pf)int i;int usetotal_vp;int swap=0;initialize(total_pf);pfc_type *pnext,*head;pnext=freepf_head;head=freepf_head;for(i=0;ipfn=1

12、)usepnext-pfn=0;pnext=pnext-next;if(pnext=NULL) pnext=head;/换出被替换的页plpnext-pn.pfn=INVALID;swap=1;if(usepnext-pfn=0) /如果使用位为,则换入相应的页plpagei.pfn=pnext-pfn; /页面结构中要标记页框号pnext-pn=pagei; /页面控制结构中要标记页号usepnext-pfn=1; /重置使用位为pnext=pnext-next;if(pnext=NULL) pnext=head;if(swap=0) freepf_head=freepf_head-next; printf(“%6.3ft“,1-(float)diseffect/320);return 0;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。