课程设计:采用CLOCK置换算法仿真请求分页系统.docVIP

课程设计:采用CLOCK置换算法仿真请求分页系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要 在计算机操作系统中,为了提高内存利用率,提供了内外存进程对换机制;内存空间的分配和回收均以页为单位进行;一个进程只需将其一部分(段或页)调入内存便可运行;还支持请求调页的存储管理方式。当进程在运行中需要访问某部分程序和数据时,发现其所在页面不在内存,就立即提出请求(向CPU发出缺页中断),由系统将其所需页面调入内存。这种页面调入方式叫请求调页,为实现请求调页,核心配置了四种数据结构:页表、页框号、访问位、修改位、有效位、保护位等。不适当的算法可能会导致进程发生“抖动”,频繁地更换页面会使进程大部分时间花费在置换工作上,所以置换算法的好坏直接影响到系统的性能。 目录 1.概述 3 2.课程设计任务及要求 4 2.1设计任务 4 2.2 设计要求 4 3.算法及数据结构 4 3.1算法的总体思想 4 3.1.1 RR算法 5 3.1.2 CLOCK算法 6 3.2 CLOCK置换算法 7 3.2.1 功能 7 3.2.2数据结构 8 4. 程序设计与实现 9 4.1 程序流程图 9 4.2 程序代码 11 4.3 实验结果 15 5. 结论 16 6.工作日志 17 7. 收获、体会和建议。 17 8. 参考文献。 18 1.概述 2.课程设计任务及要求用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。 2.2 设计要求 1.实现请求分页存储管理方式的页面置换算法:随机产生引用的页面串,页面串长度50100采用可视化界面,模拟内存分配和使用情况图。算法及数据结构 3.1.2 CLOCK算法 基本原理: 在实现可变分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配和回收操作这样三个问题。 1.为了实现分区分配,系统中必须配置相应的数据结构,用来描述空闲区和已分配区的情况,2.为分配提供依据。常用的数据结构有两种形式:空闲分区表和空闲分区链。 3.为把一个新作业装入内存,须按照一定的算法,从空闲分区表或空闲分区链中选出一个分区分配给该作业。在动态分区存储管理方式中,主要操作是分配内存和回收内存。 4.除考虑页面的使用情况外,还须再增加一个因素——置换代价,其差别在于该算法须同时检查访问位与修改位。 执行步骤: 1.Clock算法把内存中的所有页面通过链接指针接成一个循环队列。 2.当某页被访问时,其访问位置被置成1. 3.淘汰页面时,只需检查页的访问位。如果是0,就选择该页换出,若是1,则重新将它置为0,暂时不换出。 4.按照FIFO算法检查下一个页面,检查最后个页面,若访问位为1,返回队首去检查第1个页面。 原理流程图与示例图: Clock算法详细流程图如下: 3.2 CLOCK置换算法 3.2.1 功能 3.2.2数据结构 名称 说明 Page a 存储页面情况的数组 Int yks 内存物理块长度 int bf[] 存储内存块数据数组 Int bb[] 置换算法中的辅助数组 Int dys 内存调页数 Int zhs 内存置换个数 Cstring dyqk 存放全部调页情况 Cstring s 得到一个置换页面情况 bool cz 判断当前页面在内存中是否存在 Int iItemCount 得到当前列表控件中的位置 Int iItemCount1 列表控件的行初始值 Int l 列表控件中列的值 CListCtrl m_list 记录单选按钮选择页面产生方式 CString m_xl; 存放页面调用顺序的字符串 Int m_zynum 记录作业数量 Int m_zysize 记录作业大小 CString m_qyl 记录算法运行完毕后的缺页率 Int m_dys 记录调页数 Int m_zhs 记录置换数 CString m_dyqk 存放页面调用详细情况的数组 4. 程序设计与实现 4.1 程序流程图 4.2 程序代码 voidCLogin::OnOk() { // TODO: Add your control notification handler code here UpdateData(TRUE); // 获取输入数据 if(m_username==Adminm_password==password) { CDialog::OnOK(); // 假如用户名和密码正确,就关闭对话框 } /*假如用户名或密码错误,且还未超出登陆次数,就进行提示*/ if((m_username!=Admin||m_password!=password)(m_Time3)) //假如密码和用户名正确 { AfxMessageBox(用户名或密码不正确); m_Time = m_Time+1;

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档