1、 1 操作系统程序设计操作系统程序设计 课程设计报告课程设计报告 课课 题题: 请求分页式存储管理页面置换算法请求分页式存储管理页面置换算法 姓姓 名:名: 学学 号:号: 同组姓名:同组姓名: 专业班级:专业班级: 指导教师指导教师: 设计时间:设计时间: 评阅意见: 评定成绩: 指导老师签名: 年 月 日 2 目录目录 1. 系统描述. 3 2. 分析与设计. 3 2.1.系统功能模块图. 3 2.2.系统文件结构描述 . 3 2.3.系统功能流程图. 4 2.4UI 设计以及操作说明: 4 2.5.测试数据及期望. 11 3.系统测试. 12 4.总结心得体会. 12 5.参考文献. 1
2、3 6.核心代码. 13 3 1. 系统描述系统描述 系统使用.net framework 4.0 开发的,图形用户界面使用 winform 程序设计,功 能模块分别实现了请求分页式存储管理的 LRU 算法 ,FIFO 算法。 通过虚拟系统存储的概念和实现方法, 进行运行的时候不需要把所有页面都装 入内存中,只需要将部分页面调入内存,就可以运行。在运行过程中,若要访问 的页面不在内存中,则需用请求调入的功能将其装入内存中,如果此时内存中没 有空白的物理块,就通过页面置换功能淘汰一个页面,根据 LRU,FIFO 两种淘汰 算法来进行页面置换,并能计算出 FIFO,LRU 两种算法在不同内存容量中
3、的的命 中率。 系统运行时通过输入访问内存的顺序,以及分配的内存页面数,来进行二种算 法的页面置换,实现了虚拟存储的功能和特点。 2. 分析与设计分析与设计 2.1.系统功能模块图 请求分页式存储管理 先 进 先 出 算 法 最 近 最 少 使 用 算 法 图 4.1 页式存储管理模块划分 2.2.系统文件结构描述 4 2.3.系统功能流程图 开始 还有指令? 计算页号 找到了吗? 新页进入计算过程数组第一 位,其余为一次下移 计算命中率 结束 Y N N Y FIFO 开始 还有指令? 计算页号 找到了吗? 比较现有页面计数项的大小, 新页面替换最大项页面 计算命中率 结束 Y N N Y
4、LRU 2.4UI 设计以及操作说明: 主窗体: 5 #region 访问顺序 private void btnSure_Click(object sender, EventArgs e) if (txtOrder.Text.Equals(“) MessageBox.Show(“访问顺序字符串不能为空!“, “警告 “, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; order = txtOrder.Text; listBox1.Items.Clear(); string page = order.Split( ); foreac
5、h (string pg in page) listBox1.Items.Add(pg); txtOrder.Text = “; allocation alca = new allocation(); this.Hide(); DialogResult d = alca.ShowDialog(); if (d = DialogResult.OK) this.Show(); btnAlloc.Enabled = true; btnFifo.Enabled = true; btnlru.Enabled = true; alpage = alca.page; #endregion 6 输入访问内存顺
6、序,点击确定: #region 确定内存页分配 private void button1_Click(object sender, EventArgs e) if (textBox1.Text.Equals(“) MessageBox.Show(“内存页面数不能为空!“, “警告“, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; page = Convert.ToInt32(textBox1.Text.Trim(); this.Close(); #endregion 输入分配内存页面数,点击确定: 点击 FIFO 置换: FIFO 算法:淘汰最先进入的页面,也就是淘汰进入内存中驻留时间最长的页面, 先进先出。 FIFO 计算 #region 第二