操作系统课程设计——伙伴系统.docVIP

  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文档。上传文档
查看更多
哈尔滨理工大学 课 程 设 计 (操作系统) 题  目: 伙伴系统 班  级: 计算机科学与技术 计15-5班 姓  名 指导教师:       系主任: 2017 年 09 月 01 日 目 录 1. 题目分析 1 1.1 题目要求 1 1.2 功能分析 1 2. 数据结构 2 3. 流程图 3 3.1 前导界面流程图 3 3.2 演示界面流程图 3 3.3 演示界面——申请内存流程图 4 3.4演示界面——释放内存流程图 5 4. 实现技术 6 4.1工具环境 6 4.2 前导界面部分 6 4.3演示部分 8 4.4 源代码分享页面 17 5.设计结论和心得…………………………………………………………………………18 题目分析 题目要求 Linux中内存分配的伙伴堆算法模拟。 (1)模拟内存实时情况。 (2)实现Buddy?heap算法。 (3)通过键盘输入随机产生的申请和释放操作。 (4)每次申请或释放都显示实时的内存分配的对比图 功能分析 利用数组来实现伙伴系统算法的3种功能,定义一个空闲分区数组和已分配分区数组,这2个数组都为2维数组,分别记录空闲分区块和已分配分区块的大小和内存地址。这样,在实现伙伴系统算法的3种功能就转化为对数组的操作。 ⑴ 分配内存:修改空闲分区数组,模拟按照伙伴系统算法思想划分合适分区进行分配,然后添加到已分配分区数组。 ⑵ 回收内存:修改空闲分区数组,模拟按照伙伴系统算法思想回收内存,然后从已分配分区数组中删除该内存块。 ⑶ 输出内存使用情况:输出空闲分区数组和已分配分区数组 数据结构 模拟伙伴堆算法的问题中涉及的数据结构包括申请内存的大小,名字(为了直观表示),需要释放的内存的首地址,当前占用的内存数目,大小,每块内存起止地址,名字 为了清晰实现伙伴算法的模拟,我们在该项目的实现模拟的是1024大小的存储空间,我们在程序中用伪代码表示如下: /* 全局变量的声明 */ var buddy = new Array(2,4,8,16,32,64,128,256,512,1024); //分区大小 2的k次幂 var free1 = new Array(0,0,0,0,0,0,0,0,0,1); //空闲分区的个数 初始内存大小1024 var use =new Array(100); //已分配分区表 最多为100个进程分配 记录已分配分区大小,内存地址 var str = new Array(100); for (var per = 0; per = 100; per++) { use[per] = new Array(2); } var free_addr = new Array(10); //空闲分区的首地址 [i][j]表示2的i次方大小的空闲分区的第j个分区的首地址 for (var per = 0; per = 10; per++) { free_addr[per] = new Array(50); } free_addr[9][0] = 0; var maxsize=9; //最大空闲分区 初始为1024 var usenum=0; //进程数 初始为0 为了实现这些数据结构,用Javascript语言定义功能函数如下: function applyin();/* 申请内存函数 */ function releaseout()/* 释放内存函数 */ function show()/* 显示内存占用和剩余情况 */ function shutwin()/* 关闭 */ function reset()/* 刷新 */ 流程图 3.1 前导界面流程图 图1 前导界面流程图 3.2 演示界面流程图 图2 演示界面流程图 3.3 演示界面——申请内存流程图 图3 申请内存流程图 3.4演示界面——释放内存流程图 图4 释放内存流程图 实现技术 4.1工具环境 为实现上述设计,采用web语言,Sublime Text3开发环境。具体采用的技术如下: (1)HTML实现整体元素显示 (2)CSS 实现样式的构建 (3)Javascript / JQuery 事件动态的获取 (4)Chrome浏览器进行调试 4.2 前导界面部分 4.2.1 前导界面静态 图5 整体界面-1 图6 整体界面-2 4.2.2前导界面动态 图7 前导界面动态效果 设计网页样式以及功能,在HTML文件中添加标签,定义不同的类名,以便于CSS文件中样式的设定,为不同的标签对象设置不同的点击事件,设置点击事件响应。 图 8 添加图标段HTML文件 图9 添加点击响应js文件 4.3演示部分

文档评论(0)

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

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

1亿VIP精品文档

相关文档