第6次实验n#(精选).docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章实验 -02 本次实验报告在下周六晚上 12 点前提交,晚交超过 72 小时者将酌情扣分 小组长请随时掌握本组成员实验完成情况,并认真为其打分 各位小组长请在实验完成时示意老师过去检查(下课前 15 分钟) 实验二 常用页面置换算法模拟实验 1.实验目的 通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点, 掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程, 并比较它 们的效率; 操作系统的发展使得系统完成了大部分的内存管理工作, 对于程序员而言, 这些 内存管理的过程是完全透明的。 因此程序员从不关心系统如何为自己分配内存, 而且永远认 为系统可以分配给程序所需要的内存。 在开发程序时, 程序员真正需要做的就是: 申请内存、 使用内存、释放内存。该实验就是帮助读者更好地理解从程序员的角度应如何使用内存。 2. 实验要求 : 要求用你熟悉的程序设计语言 编写和调试一个页面置换模拟程序; 要求在主函数中测 实验报告中必须包括: 设计思想、数据定义(包括详细说明) 、处理流程(详细算法 描述和算法流程图) 、源代码、运行结果、体会等部分。 必须模拟本实验内容中提到的算法 中的至少 2 种页面置换算法 。 比较不同页面置换算法的效率 3.实验内容 编写一个程序,使用以下页面置换算法中的某 2 种分别模拟一个分页系统。 1、第二次机会算法( Second Chance) 2、最近最少使用算法( Least Recently Used, LRU ) 3、最不常用算法( Not Frequently Used ,NFU ) 4、最近未使用算法( Not Recently Used ,NRU ) 5、时钟页面置换算法 6、老化算法( aging ) 页框的数量是参数, 页面访问序列是随机产生的指令序列(也可以从文件中读入 )。对 于一个已定的指令序列,列出 1000 次内存访问中发生缺页中断的数目,它是可用页框数的 函数【 需要显示各种算法在不同用户内存页框数 [4 至 32] 情况下的缺页中断数目】 第三章实验 -02 4.实验预读 若指令为随机序列,则首先用 srand( ) 和 rand( )函数定义和产生指令序列,然后将指令 序列变换成相应的页地址流,并针对不同的算法统计出相应的缺页中断数目 (1)通过随机数产生一个指令序列,共 320条指令 。指令的地址按下述原则生成: A : 50%的指令是顺序执行的 B: 25%的指令是均匀分布在前地址部分 C: 25%的指令是均匀分布在后地址部分 具体的实施方法是: A :在[0, 319]的指令地址之间随机选取一起点 m B:顺序执行一条指令,即执行地址为 m+1的指令 C:在前地址[0,m-1]中随机选取一条指令并执行,该指令的地址为 m' D :顺序执行一条指令,其地址为 m'+1 E:在后地址[m+2,319]中随机选取一条指令并执行 F:重复步骤A-E,直到320条指令执行结束 (2)将指令序列变换为页地址流(同样适应于指令从文件中读入) 假设: 页面大小为 1K ; 用户内存容量 4 页到 32 页; 用户虚存容量为 32K 。 在用户虚存中, 按每 K 存放 10条指令排列虚存地址, 即 320条指令在虚存中的存放方 式为: 第 0 条-第 9 条指令为第 0 页(对应虚存地址为 [0, 9]) 第10条-第19条指令为第 1页(对应虚存地址为 [10, 19]) 第310 条-第 319条指令为第 31 页(对应虚存地址为 [310, 319]) 按以上方式,用户指令可组成 32 页。 5. 实验理论参考 1 )虚拟存储系统 UNIX中,为了提高内存利用率,提供了内外存进程交换 (Swapping)机制;内存空间的 分配和回收均以页为单位进行; 一个进程只需将其一部分 (段或页)调入内存便可运行;还 支持 请求调页 的存储管理方式。 当进程在运行中需要访问某部分程序和数据时, 发现其所在页面不在内存, 就立即提出 请求(向 CPU 发出缺中断) ,由系统将其所需页面调入内存。 这种页面调入方式叫请求调页。 为实现请求调页,核心配置了数据结构: 页表 [页框号、访问位、修改位、有效位、保 护位等 ]。 2)页面置换算法 当 CPU 接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中 断处理程序。 该程序通过查找页表,得到该页所在外存的物理块号 [number of page frame 页框号 ]。如果此时内存未满,能容纳新页,则启动磁盘 I/O 将所缺之页调入内存,然后修 改页表。 如果内存已满,则须按某种置换算法从内存中选出一页准备换出,是否重新写盘 由页表的修改位决定,然后将缺页调入,修改页表。 利用修

文档评论(0)

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

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

1亿VIP精品文档

相关文档