欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    操作系统课程设计报告DOC.doc

    • 资源ID:5796       资源大小:404KB        全文页数:57页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计报告DOC.doc

    -模拟请求页式管理第1章 需求分析1.1设计要求请求页式管理是一种常用的虚拟存储管理技术。本设计通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。本实验要求用Vc或其他高级语言编写和调试。编写程序实现:  1先进先出页面置换算法FIFO 2最近最久未使用页面置换算法LRU 最正确置换页面置换算法OPT 设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。1.2解决方案首先确定实现语言使用c#实现图形化界面,后确定要实现哪些功能,比方算法选择,页面添加,模拟控制。然后确定输出构造以便于程序的测试和验证。将根本框架建立后再进展编程。编程前进展算法构造分析最后编程实现。1.3算法实现原理1、先进先出置换算法FIFO:发生缺页中断时按照页面进入内存顺序总是淘汰最先进入内存的页面。2、最近最久未使用置换算法LRU:发生缺页中断时总是淘汰存在内存中最长时间未被使用的页面。3、最正确置换算法OPT:发生缺页中断时假设一个或几个页面将来将不会被调用则按先进先出原则淘汰页面,假设将来都有调用则比较调用时刻选择最远时刻页面淘汰。4、缺页率:缺页次数占页面调用次数的百分比。第2章 概要设计2.1数据设计常变量:调用页面最大数量Ma*N,内存最大页面数Ma*M待调用页面数组:page_ddMa*N存放等待调用的页面号页面数组专用指针 page_p,用于指向page_dd数组中正需调入内存的页号内存块数组:MemeryMa*M,存放内存当前存放的页号缺页计数器:count,记录缺页次数内存块状态数组:M1Ma*N,M2Ma*N,M3Ma*N,记录每次页面调用完毕后内存各块的状态缺页记录数组sMa*N,用于记录页面调用时是否产生缺页中断,初始化为是2.2函数设计1、页面添加函数:void btnAdd_Click(object sender, EventArgs e)用于实现通过点击按钮实现数据输入。2、内存初始化函数:init(int a, int b,int m1,intm2,intm3)参数有页面数组、内存数组、状态数组,采用先进先出算法对内存先进展装满效劳于先进先出页面置换函数和最正确置换函数。3、 输出函数:void display(inta,intm1,intm2,intm3,charc)用于输出模拟结果,参数有页面数组,内存数组,状态数组,缺页记录数组。再模拟之后调用。4、模拟控制函数:void btnmo_Click(object sender, EventArgs e用于实现通过单击模拟按钮,根据用户所选算法进展模拟并显示结果。5、先进先出算法模拟函数:void FIFO(int a, int b,intm1,intm2,intm3,char s)用于实现先进先出算法模拟,参数有页面数组,内存数组、内存状态记录数组,缺页记录数组。在模拟函数中调用。6、 最近最久未使用算法模拟函数:void LRU(int a, int b, int m1, int m2, int m3, char s)用于实现最近最久未使用算法模拟,参数有页面数组,内存数组,内存状态记录数组,缺页记录数组。在模拟函数中被调用。7、 最近最久未使用函数辅助函数:void LUR_I(int a,int e)用于对最近最久未使用算法中所用辅助数组记录页面存在时长进展调整,参数有辅助数组及需调整的数据下标。在最近最久未使用函数中调用。8、最正确置换算法模拟函数:void OPT(int a, int b, int m1, int m2, int m3, char s)用于模拟最正确置换算法。参数有页面数组,内存数组,内存状态记录数组,缺页记录数组。在模拟函数中被调用。9、 最正确置换算法辅助函数:void OPT_F(int a, int e)用于对最正确置换算法中的辅助数组进展调整。参数有辅助数组,需调整数据下标。在最正确置换算法中被调用。10、 重置函数:void btncz_Click(object sender, EventArgs e)用于重新选择算法进展新的模拟。2.3主要算法设计1、初始化函数算法:第一步:将第一个页面调入内存,调整最正确置换算法辅助数组,缺页计数器加一,保存内存数组状态。第二步:调用下一个页面并判断内存中是否有本页面有转第三步,无转第四步。第三步:更改缺页数组对应下标值,记录当前内存状态,调整最正确置换算法辅助数组,页面指针指向下一页。第四步:将页面调入内存,调整最正确置换算法辅助函数,缺页计数器加一,保存内存数组状态。假设内存尚不满转第一步。具体见图1初始化算法流程图。图1 初始化算法流程图2、 先进先出页面置换算法:第一步:检查内存中是否已有需调用页面,有则转第二步,无则转第三步。第二步:记录当前内存状态,修改缺页数组对应下标值。第三步:内存中无需要调用的页面,进展出队操作,然后进展入队操作,记录内存块状态,缺页计数器加一。第四步:假设页面数组未被调用完毕转第一步。具体见图2先进先出算法流程图。图2 先进先出算法流程图3、 最近最久未使用置换算法:第一步:将页面调入内存,记录内存状态,缺页计数器加一,调整辅助数组,页面指针加一。第二步:检查内存中是否已有所需页面,有转第三步,无转第一步。第三步:修改缺页数组对应下标记录,记录内存状态,调整辅助数组,页面指针加一。第四步:内存是否已满,无则转第一步,是则转第五步。第五步:检查内存中是否有所需页面,有则记录当前内存状态,修改缺页数组对应下标值。无则转第六步。第六步:检查辅助数组找出最大值并记录其下标,置换内存中对应下标的数据,调整辅助数组,缺页计数器加一。第七步:页面是否调用完毕未完毕则转第五步。具体见图3最近最久未使用算法流程图。图3 最近最久未使用算法4、 最正确置换算法:第一步:检查内存中是否已有所需页面,有则记录内存状态,修改缺页数组对应下标数值。无则转第二步。第二步:判断内存中各页面的未来调用情况,记录是否还有调用,假设有则记录调用时刻。第三步:分析调用情况,内存中页面都在将来不会被调用转第四步,有一个被调用转第五步,有两个被调用转第六步,全被调用转第七步。第四步:查找辅助数组找到内存中存在时间最长的页面进展置换,修改内存状态,缺页计数器加一,修改辅助数组。第五步:查找到不会被调用的页面,并根据辅助数组选择最早进入内存的页面将其置换。修改内存状态,缺页计数器加一,修改辅助数组。第六步:查找辅助数组找到将来不需要在调用的页面将其置换,修改辅助数组,记录内存状态,缺页计数器加一。第七步:查找辅助数组,找寻最晚被调用的页面,将其置换。记录内存状态,修改辅助数组,缺页计数器加一。第八步:页面是否调用完成,否则转第一步。具体见图4最正确置换算法流程图图4 最正确置换算法流程图2.4界面设计采用c# 设计windows窗体应用程序,使用下拉列表框选择算法,通过按钮添加待调用的页面。通过文本控件显示模拟结果。显示样式:第一行:算法名称; 第二行:调用页面顺序; 第三行至第五行显示内存在每调用一次页面后的状态; 第六行:是否缺页; 最后一行显示缺页率;第3章 详细设计与实现3.1函数设计 1、添加按钮功能实现代码主要功能:实现单击一次添加一个调用页面,并给出相应的提示,如正在输入的是第几次调度页面,在输入为空时能够弹出对话框提示用户,在输入完成时为防止数组越界应在输入完成时隐藏;输入过程中始终保证时输入焦点。private void btnAdd_Click(object sender, EventArgs e) if (t*tAdd.Te*t != "")/输入不为空才能继续输入 page_ddi_add = Convert.ToInt32(t*tAdd.Te*t); /*将输入值赋值给页面数组*/ t*tShow.Te*t += t*tAdd.Te*t + " " /*显示供用户查阅*/ i_add+; t*tAdd.Clear(); /*清空*/ if (i_add = Ma*N)/输入完毕时 t*tAdd.ReadOnly = true;/不允许继续输入 btnAdd.Hide();/按钮隐藏 return; t*tAdd.Focus();/设置为输入焦点 label2.Te*t = "第" + (i_add + 1) + "次调度页面:" /*提示用户正在输入的是第几次调度页面*/ /*输入为空则弹出对话框提示用户输入为空*/ else MessageBo*.Show("请输入调用页面!", "输入为空", MessageBo*Buttons.OK, MessageBo*Icon.Warning); t*tAdd.Focus(); 2、 初始化函数主要功能:将内存一先进先出方式填满,并记录每个页面进入时间,效劳于先进先出页面置换算法和最正确置换算法。 void init(int a, int b,int m1,intm2,intm3) /*内存未满时循环*/ for (int i = 0; i < Ma*M&&page_p <Ma*N ; i+) bi = apage_p;/调入内存 /调整辅助数组将刚进入内存的页面的对应时间 OPT_F (O_Q ,i); count+;/缺页计数器加一 m1page_p = b0;/保存内存状态 m2page_p = b1; m3page_p = b2; page_p+;/调用下一页面 /检查内存中是否原先就有需要的页面;

    注意事项

    本文(操作系统课程设计报告DOC.doc)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开