《操作系统实验报告》.docxVIP

  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文档。上传文档
查看更多
计算机科学与应用系 课程设计报告 操作系统原理 目录 TOC \o 1-5 \h \z 1题目简述 2 \o Current Document 2需求分析 2 \o Current Document 2.1设计思想 2 \o Current Document 2.2要求 3 \o Current Document 2.3任务 3 \o Current Document 2.4运行环境 3 \o Current Document 2.5开发工具 3 \o Current Document 3概要设计与详细设计 3 \o Current Document 3.1系统流程图 3 3.2算法流程图 4 4编码与实现 10 4.1数据结构和算法设计 1.0 4.2程序调试与截图 1.Q 5课程设计总结 1.7 参考文献 1.7. 附录 .18 动态分区分配算法的模拟 1题目简述 动态分区分配是根据进程的实际需要,动态地为之分配存空间。在实现可变分区分配时, 将涉及到分区分配中所用到的数据结构、分配算法和分区的分配与回收操作。常用的数据结构有 空闲分区表和空闲分区链两种,分区分配算法主要有首次适应算法、最佳适应算法、最坏适应算 法等。 本次试验通过 C语言进行编程调试并运行, 形象地表现出动态分区分配方式, 直观地展示了 首次适应算法、最佳适应算法、最坏适应算法对存的释放和回收方式之间的区别。加深了我对三 种算法优缺点的理解,帮助我了解一些数据结构和分配算法,进一步加深我对动态分区存储器管 理方式及其实现过程的理解。主要问题在于,如何解决三种算法对存的释放和回收空间的表示。 动态分区分配又称为可变分区分配,这种分配方式并不是事先将主存划分成一块块的分区, 而是在作业进入主存时,根据作业的大小动态地建立分区,并使分区的大小正好适适应作业的需 要。因此,分区中的大小是可变的,分区的数目也是可变的。 2需求分析 2.1设计思想 首次适应算法(First_fit) 空闲分区链以地址递增的次序连接。在分配存时,从联手开始顺序查找,直到找到一个大小 能满足要求的空闲分区为止;然后再按照作业大小,从该分区划出一块存空间给请求者,余下的 空闲分区仍然留在空闲链中。若从链首直至链尾都找不到一个能满足要求的分区,则此次存分配 失败。 最佳适应算法(Best_fit) 它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量 小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始 查找到第一个满足要求的自由分区分配。该算法保留大的空闲区,但造成许多小的空闲区。 (4)最坏适应算法(Worst_fit) 最坏适应分配算法要扫描整个空闲分区或链表, 总是挑选一个最大的空闲分区分割给作业使 用。该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲分区链,查找时只要看第 一个分区能否满足作业要求。优点是可使剩下的空闲分区不至于太小,产生碎片的几率最小,对 中、小作业有利,同时该算法查找效率很高。 (4)存回收(Free) 将释放作业所在存块若改为空闲状态,删除其作业名,变为空。然后判断该空闲块是否与其 他空闲块相连,若释放的存空间与空闲块相连时,则合并其为同一个空闲链表,同时修改开始地 址及分区大小。 2.2要求 用C++语言实现程序设计; 利用结构体进行相关信息处理; 画出查询模块的流程图; 界面友好(良好的人机互交),程序要有注释。 2.3任务 掌握为实现多道程序并发执行,操作系统是如何通过作业调度选择作业进入存; 系统如何为进入存的作业分配存空间,实现多道作业同时驻留存,就绪进程队列中的多个 进程是如何以分式方式共享 CPU,作业运行完成离开系统时,系统如何进行存回收,计算 进程周转时间; 画出所有模块的流程图; 编写代码; 程序分析与调试。 2.4运行环境 WINDOWS2000/XP 系统 Microsoft Visual C++ 6.0 编译环境 2.5开发工具 C++语言 本程序采用C语言编写,在 Windows下的Visual C++环境下编译,模拟可变分区存储管理 方式的存分配与回收。 3概要设计与详细设计 3.1系统流程图 图3.1.1系统流程图 3.2.1存分配流程图 图3.2.1存分配流程图 找到一个空闲分区 地址 遗回作业分酎王存的地扯 图3.2.2首次适应算法流程图 图3.2.3最佳适应算法流程图 * 返回作业分甄主存地址 结束 图 3.2.4 最坏适 应算法流程图 4编码与实现 4.1数据结构和算法设计 相关数据结构定义: 空闲分区结构: typedef struct freearea() 线性链表结构:typedef stru

文档评论(0)

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

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

1亿VIP精品文档

相关文档