免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科实验报告本科实验报告 课程名称 操作系统 B 实验项目 存储管理程序设计 实验地点 专业班级 学号 学生姓名 指导教师 2011 年 11 月 1 目录目录 存储管理程序设计 一 实验目的和要求一 实验目的和要求 1 1 二 实验内容及原理二 实验内容及原理 1 1 三 实验仪器及设备三 实验仪器及设备 3 3 四 操作方法与实验步骤四 操作方法与实验步骤 3 3 五 实验数据记录和处理五 实验数据记录和处理 3 3 六 实验结果分析六 实验结果分析 8 8 七 实验感想七 实验感想 9 9 1 实验三 存储管理程序设计 一 实验目的和要求一 实验目的和要求 一 目的 存储管理的主要功能之一是合理地分配主存空间 请求页式管理是一种常用的虚拟存 储管理技术 本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计 来了解虚拟存储 技术的特点 掌握请求页式存储管理的页面置换算法 二 要求 模拟页式虚拟存储管理中硬件的地址转换和缺页中断的处理过程 并用先进先出调度 算法 FIFO 处理缺页中断 二 二 实验内容及原理实验内容及原理 1 为了装入一个页面而必须调出一页时 如果被选中调出的页面在执行中没有修改 过 则不必把该页重新写到磁盘上 因磁盘上已有副本 因此 在页表中可以增加是否修 改过的标志 当执行 存 指令 写 指令时把对应页的修改标志置成 1 表示该页修 改过 否则为 0 表示该页未修改过 页表格式如表 3 1 所示 表 3 1 页表格式 页 号 标 志 主存块号 修改标志 磁盘上的位置 2 设计一个地址转换程序来模拟硬件的地址转换和缺页中断处理过程 当访问的页 在主存时则形成绝对地址 但不去模拟指令的执行 可用输出转换后的绝对地址来表示一 条指令已完成 当访问的页不在主存时则输出 该页页号 来表示硬件产生了一次缺页中 断 模拟地址转换的程序流程如图 3 1 所示 3 编制一个 FIFO 页面调度程序 FIFO 页面调度算法总是先调出作业中最先进入主 存的那一页 因此 可以用一个数组来构成页号队列 数组中每个元素是该作业已在主存 的页面号 假定分配给作业的主存块数为 m 且该作业开始的 m 页已装入主存 则数组可 由 m 个元素组成 P 0 P 1 P m 1 它们的初值为 P 0 0 P 1 1 P m 1 m 1 用一指针 k 指示当要装入新页时应调出的页在数组的位置 k 的初值为 0 2 j P k j 页的修改标志 1 输出 OUTj P k L k k 1 mod m 修改页表 输出 IN L 取一条指令 开始 页标志 1 输出绝对地址 取一条指令 输出 页号 取指令中访问的页号 L 查页表 形成绝对地址 置 L 页修改标志 1 结束 是 存 指令 有后继指令 否 产生缺页中断 是 否 否 否 是 是 模拟硬件 地址转换 模拟 FIFO 页面调度 是 图 3 1 地址转换和 FIFO 页面调度流程 当产生缺页中断后 操作系统总是选择 P k 所指出的页面调出 然后执行 P k 要装入的新页页号 k k 1 mod m 在实验中不必实际地启动磁盘执行调出一页和装入一页的工作 而用输出 OUT 调出的页 号 和 IN 要装入的新页页号 来模拟一次调出和装入的过程 模拟程序的流程见图 3 1 4 假定主存的每块长度为 1024 个字节 现有一个共 7 页的作业 其副本已在磁盘上 系统为该作业分配了 4 块主存块 且该作业的第 0 页至第 3 页已经装入主存 其余 3 页尚 3 未装入主存 该作业的页表见表 3 2 所示 表 3 2 作业的页表 页号 标志 主存块号 修改标志 在磁盘上的位置 0 1 5 0 011 1 1 8 0 012 2 1 9 0 013 3 1 1 0 021 4 0 0 022 5 0 0 023 6 0 0 121 如果该作业依次执行的指令序列如表 3 3 所示 表 3 3 作业依次执行的指令序列 操作 页号 页内地址 操作 页号 页内地址 0 070 移位 4 053 1 050 5 023 2 015 存 1 037 存 3 021 取 2 078 取 0 056 4 001 6 040 存 6 084 依次执行上述的指令序列来调试你所设计的程序 仅模拟指令的执行 不必考虑指令序列 中具体操作的执行 5 为了检查程序的正确性 可自行确定若干组指令序列 运行设计的程序 核对执 行结果 三 实验仪器及设备三 实验仪器及设备 计算机一台 c 6 0 编程软件 四 操作方法与实验步骤四 操作方法与实验步骤 1 编写源程序 2 编译运行 五 实验数据记录和处理五 实验数据记录和处理 源程序 include include include 4 include define N 6 实验中假定的页表长度 define M 4 主存物理块数 struct int lnumber 页号 int flag 表示该页是否在主存 1 表示在主存 0 表示不在主存 int pnumber 该页所在主存块的块号 int write 该页是否被修改过 1 表示修改过 0 表示没有修改过 int dnumber 该页存放在磁盘上的位置 即磁盘块号 page N 页表定义 int p M 用数组模拟 FIFO 算法中的队列 使用循环队列 int head void initial void int do mmap int 模拟地址转换 void do page fault int 缺页中断处理程序 void run first instructon int 执行进程的第一条指令 void run a instruction int CPU 执行一条指令 void print page and fifoqueue void 输出页表和 FIFO 队列 main int laddress paddress 逻辑地址 物理地址 int lnumber ad pnumber 页号 页内地址和物理块号 initial print page and fifoqueue 输出页表和 FIFO 队列 run first instructon 0 x0000 运行进程的第一条指令的地址 cout 输入下一条指令的逻辑地址 0 32767 1 to end laddress while laddress 32767 cout 输入错误 请重新输入下一条指令的逻辑地址 0 32767 1 to end laddress while laddress 1 lnumber laddress 10 取逻辑地址的页号 lnumber if page lnumber flag 1 指令所在的页面已装入在内存中 paddress do mmap laddress 形成物理地址 cout paddress 输出转换后的物理地址 endl run a instruction paddress cout 此指令执行是否修改所在页 lnumber lnumber change 5 if tolower change y page lnumber write 1 print page and fifoqueue else 缺页中断 cout lnumber 输出该页的页号 表示硬件产生缺页中断 endl do page fault lnumber 直接转去缺页中断处理 continue 本循环结束 重新执行指令 cout laddress while laddress 32767 输入正确性检测 cout 输入错误 请重新输入下一条指令的逻辑地址 0 32767 1 to end laddress cout 进程运行结束 endl system PAUSE return 0 手工初始化页表和 p M 队列 void initial void int i for i 0 i 5 i page i lnumber i if i M 1 预装入算法初始化页表的前四项 cout 输入页号为 i page i pnumber page i flag 1 存在标志置 1 初始化 FIFO 的队列 head 0 for i 0 i M 1 i p i i 6 输出页表和 FIFO 队列 void print page and fifoqueue void int i cout 输出页表 n cout setw 10 lnumber setw 9 flag setw 10 pnumber setw 10 write setw 10 dnumber endl for i 0 i N 1 i cout setw 7 page i lnumber setw 10 page i flag setw 10 page i pnumber setw 10 page i write setw 10 page i dnumber endl cout 输出 FIFO 对列 n cout setw 10 NO setw 40 page 已在主存的页号 lnumber n cout head head endl for i 0 i M 1 i cout setw 10 i setw 15 p i 10 取逻辑地址的页号 lnumber ad laddress 页内地址 pnumber page lnumber pnumber 从页表中取得块号 pnumber paddress pnumber 10 ad return paddress CPU 执行一条指令 输出物理地址表示指令执行完成 void run a instruction int paddress cout paddress 输出物理地址 表示指令执行完成 10 取逻辑地址的页号 if page lnumber flag 1 paddress do mmap laddress 形成物理地址 cout paddress 输出转换后的物理地址 endl run a instruction paddress cout 此指令执行 0 x0000 是否修改所在页面 lnumber lnumber change if tolower change y 若指令执行完时修改了页面 则置 write 标志位位 1 page lnumber write 1 print page and fifoqueue cout 第一条指令执行完成 地址为 0 x0000 endl 页面写回磁盘 void write to harddisk int j cout j 输出已修改的淘汰的页号 表示该页写回了磁盘 endl 缺页中断处理程序 void do page fault int lnumber int j j 是选择淘汰的页 j p head p head lnumber lnumber 是新装入的页号 head head 1 M 若淘汰出主存的页 j 已修改 则写会磁盘 if page j write 1 write to harddisk j 页 j 写回磁盘 修改页表 page j flag 0 页表中第 j 页的存在标志为 0 page lnumber flag 1 页表第 lnumber 的存在标志为 1 page lnumber write 0 页表第 lnumber 的修改标志为 0 page lnumber pnumber page j pnumber 第拉怒目布尔页的主存块号为第 j 页原主存 块号 8 cout lnumber 输出该页 表示该页调入了主存 endl cout 按任意键将查看 页面置换 之后的页表 page N 和 FIFO 队列信息 endl system PAUSE print page and fifoqueue 六 实验结果分析六 实验结果分析 9 七 实验感想七 实验感想 本实验是通过请求页式存储管理中页面置换算法的模拟设计 来了解虚拟存储技术的 特点 掌握请求页式存储管理页面置换算法 该程序通过查找页表 得到该页所在外存的 物理块号 如果此时内存未满 能容纳新页 则启动磁盘 I O 将所缺之页调入内存 然后 修改页表 如果内存已满 则须按某种置换算法从内存中选出一页准备换出 是否重新写 盘由页表的修改位决定 然后将缺页调入 修改页表 利用修改后的页表 去形成所要访 问数据的物理地址 再去访问内存数据 整个页面的调入过程对用户是透明的 先进先出 算法总是最先淘汰最先进入内存的页面 比较简单 容易理解 即选择在内存中驻留时间 最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国大气泵行业市场前景预测及投资价值评估分析报告
- 2025西南证券股份有限公司招聘39人笔试考试参考试题及答案解析
- 2025年工程监理合同协议
- 2025年客运班线承包经营合同履行期限终止责任
- 刑事案件委托代理协议范本
- 2026年邯郸幼儿师范高等专科学校单招职业倾向性测试必刷测试卷附答案
- 2026年山西信息职业技术学院单招职业适应性测试题库必考题
- 2026年杭州职业技术学院单招职业技能考试题库附答案
- 2026年满洲里俄语职业学院单招职业倾向性测试题库附答案
- 2026年北京市单招职业适应性考试题库及答案1套
- DZ/T 0078-1993固体矿产勘查原始地质编录规定
- 采购合同垫资协议书模板
- T/CEMIA 040-202499氧化铝陶瓷用造粒粉
- T/CECS 10133-2021水泥熟料生产用硅铁质混合料
- 兽医消毒知识培训课件
- 外科护理新进展
- 旅游业消费者行为分析数据表
- 华为F5G全光网络在工业互联网的应用
- 工贸行业企业安全风险分级管控清单
- 2025年中国长江三峡集团招聘笔试参考题库含答案解析
- 《幼儿合作行为的发展特点及其影响因素的研究》
评论
0/150
提交评论