- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 实验八
实验名称:
存储管理模拟
实验目的:
掌握请求分页存储管理系统的基本原理
实现一个模拟的虚拟分页存储管理系统
实验要求:
编写一个程序,模拟一个虚拟分页存储管理系统。其中,由系统随机产生进程;
进程大小、进程到达次序、时间、进程执行轨迹(页面访问顺序)也随机生成,但进程之间必须有并发存在,进程执行时间需有限,进程调度采用时间片轮转算法(以页面模拟);rss驻留集大小物理块分配策略采取固定分配局部置换;分配算法采用按比例分配算法;调页采用请求调页方式;置换分别采用FIFO、LRU(一直没用) 访问次数 和简单CLOCK算法(循环链表)标志 有没有被访问;
驻留集大小可调,观察驻留集大小对缺页率的影响。
算法思想:
FIFO 先进先出法
LRU 最久未使用算法
CLOCK 简单时钟算法
命中率=1-页面失效次数/页地址流(序列)长度
驻留集大小可调,观察驻留集大小对缺页率的影响。
结构体定义
页面控制表表结构 页面号指针页面控制结构单位时间访问次数页框号上次访问时间页面序号
页面控制表
表结构
页面号
指针
页面控制结构
单位时间访问次数
页框号
上次访问时间
页面序号
页面
页框号
页框号
包含链表:空闲页面表 忙页面表
包含数组:进程数组 页面号数组
开始流程图:
开始
引用块编号大于物理块?分配物理块为其分配页号随机得到进程指令序列
引用块编号大于物理块?
分配物理块
为其分配页号
随机得到进程指令序列
否
页号在物理块内?
页号在物理块内?
是
是
是否完成?选择FIFO LRU CLOCK 置换算法置换
是否完成?
选择FIFO LRU CLOCK 置换算法置换
是
结束
结束
实验结果分析:
观察数据可看出:横向:三种替换算法的命中率由高到底排列应该是LRUCLOCKFIFO。
纵向:进程的驻留级越大,其缺页率就越低。
实验体会:
内存中进程的多少会影响驻留集大小和缺页中断率。
如果内存中进程太多,将导致每个进程的驻留集太小,发生缺页中断的概率很大。相应地,系统发生抖动的可能性就会很大。
如果在内存中保持太少的活动进程,那么所有活动进程同时处于阻塞状态的可能性就会很大,从而降低处理机的利用率。
置换算法的好坏将直接影响系统的性能,不适当的置换算法可能导致系统出现“抖动”现象。常用的页面置换算法:最佳置换算法、最近最少使用算法、先进先出算法和时钟算法等。最佳置换算法难以实现但可以成为核对其他算法的标准。
也应注意负载问题,解决系统应当保持多少个活动进程驻留在内存的问题,即控制多道程序系统的度。当内存中的活动进程数太少时,负载控制将增加新进程或激活一些挂起进程进入内存;反之,当内存中的进程数太多时,负载控制将暂时挂起一些进程,减少内存中的活动进程数。
实验代码:
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#define TRUE 1
#define FALSE 0
#define INVALID -1
#define total_instruction 320 //指令流长
#define total_vp 32 //页长
#define clear_period 50
typedef struct //页面结构
{
int pn, //页面序号
pfn, //页面所在内存区的页框号
counter, //单位时间内访问次数
time; //上次访问的时间
}pl_type;
pl_type pl[total_vp]; //页面结构数组
struct pfc_struct{ //页面控制结构
int pn, //页面号
pfn; //内存区页面的页框号
struct pfc_struct *next; //页面指针,用于维护内存缓冲区的链式结构
};
typedef struct pfc_struct pfc_type; //主存区页面控制结构别名
pfc_type pfc[total_vp], //主存区页面控制结构数组
*freepf_head, //主存区页面控制结构的空闲页面头指针
*busy
您可能关注的文档
最近下载
- 2025年人工智能与机器学习课程期末考试题及答案.docx VIP
- 雪迪龙 SCS-900UV使用说明书.pdf VIP
- 2026中国电科36所校园招聘考试模拟卷及答案解析(夺冠).docx VIP
- 古代诗人名人王维人物介绍PPT.pptx VIP
- 温州市2026届高三第一次适应性考试(一模)语文试卷(含答案详解)原卷.pdf
- EXCEL上机操作题.doc VIP
- 贵州兴义电力发展有限公司2026年校园招聘备考题库及答案详解参考.docx VIP
- 金属材料学 戴起勋 上传完整版.doc VIP
- 心率变异性分析评价糖尿病患者自主神经病变应用.doc VIP
- 道路旅客运输企业安全生产操作规程汇编 .pdf VIP
原创力文档


文档评论(0)