蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > PDF文档下载
 

计算机操作系统课程设计报告存储管理——动态分区分配算法的模拟

  • 资源ID:55452088       资源大小:693.86KB        全文页数:24页
  • 资源格式: PDF        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

计算机操作系统课程设计报告存储管理——动态分区分配算法的模拟

计算机操作系统课程设计 题题目目 存储管理动态分区分配算法的模拟存储管理动态分区分配算法的模拟 专专业业 软件工程软件工程 年年级级 20122012 级级 小组成员小组成员 指导教师指导教师 时时间间 地地点点 20122012 年年 5 5 月月 目录目录 目录1 概述3 2. 课程设计任务及要求.3 1 2.1 设计任务 3 2.2 设计要求 3 2.3 课程设计任务安排 3 3. 算法及数据结构.4 3.1 算法的总体思想(流程).4 3.2 首次适应算法.4 3.2.1 功能 4 3.2.2 数据结构(包括变量的定义,要注释) 4 3.2.3 算法(流程图表示,或伪 C 表示) 5 3.3 循环首次适应算法.6 3.3.1 功能.6 3.3.2 数据结构 6 3.3.3 算法.7 3.4 最佳适应算法.8 3.4.1 功能.8 3.4.2 数据结构 8 3.4.3 算法.8 3.5 最坏适应算法10 3.5.1 功能10 3.5.2 数据结构 .10 3.5.3 算法11 4. 程序设计与实现12 4.1 程序流程图 .12 4.2 程序代码(要注释) .12 4.3 实验结果 .21 5. 结论23 6. 收获、体会和建议。23 A 的总结23 B 的总结23 7. 参考文献。24 2 概述概述 动态分区分配是根据进程的实际需要, 动态地为之分配内存空间,而在分配 时, 须按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该 作业。在本实验中运用了五种分配算法,分别是 1.首次适应算法 2.循环首次适应算法 3.最坏适应算法 4.最佳适应算法 5. 快速适应算法 2.2. 课程设计任务及要求课程设计任务及要求 2.1 设计任务 要求设计主界面以灵活选择其中算法,5 种算法都要求实现。 2.2 设计要求 1)首先由系统生成当前的内存状态,要求未分配的分区数量不少于 3 个, 且空间大小随机,然后随机生成一个数,表示等待分配进程的大小。 2)然后显示上述算法由用户选择,结果显示分配后的状态。 2.3 课程设计任务安排 日期 星期三下午 星期四早上 星期四下午 星期五早上 星期五下午 研究算法 设计算法 设计算法,编写界面 编写算法 程序测试并优化 A 研究算法 参与设计 参与设计 完成部分文档 程序测试,完成文档 B 3 3.3. 算法及数据结构算法及数据结构 3.1算法的总体思想(流程) 设计程序模拟四种动态分区分配算法首次适应算法、循环首次适应算 法、最佳适应算法和最坏适应算法的工作过程。假设内存中空闲分区个数为 n,空闲分区大小分别为 P 1, ,Pn,在动态分区分配过程中需要分配的进 程个数为 m(m≤n) ,它们需要的分区大小分别为 S 1, ,Sm,分别利用 四种动态分区分配算法将 m 个进程放入 n 个空闲分区,进程在空闲分区中 的分配情况。 3.2首次适应算法 3.2.13.2.1 功能功能 在首次适应算法中,是从已建立好的数组中顺序查找,直至找到第一 个大小能满足要求的空闲分区为止,然后再按照作业大小,从该分区中划出 一块内存空间分配给请求者,余下的空间令开辟一块新的地址,大小为原来 的大小减去作业大小,若查找结束都不能找到一个满足要求的分区,则此次 内存分配失败。 3.2.23.2.2 数据结构(包括变量的定义,要注释)数据结构(包括变量的定义,要注释) privateprivate staticstatic intintMaxNum 100; //空闲分区个数 privateprivate staticstatic intintn; //作业个数 privateprivate staticstatic intintm; //空闲分区大小 privateprivate staticstatic intintFreePartition[] newnew intint[MaxNum]; //作业名称 privateprivate staticstatic charcharProcessName[] newnew charchar[MaxNum]; //作业需求空间大小 privateprivate staticstatic intintProcessNeed[] newnew intint[MaxNum]; 4 //作业分配标志 privateprivate staticstatic booleanbooleanstate[] newnew booleanboolean[MaxNum]; //空闲分区个数 privateprivate staticstatic intintPartitionNum; //作业个数 privateprivate staticstatic intintProcessNum; //记录作业分配 privateprivate staticstatic charcharorder[][] newnew charchar[MaxNum][MaxNum]; 3.2.33.2.3 算法(流程图表示,或伪算法(流程图表示,或伪 C C 表示)表示) publicpublic staticstatic voidvoid First { forfori0;im;i { forforj0;jn;j { //找到第一个合适的空闲分区 if ifProcessNeed[i] FreePartition[j] k3;k//记录作业分配 { } if iforder[j][k] 0//为空 { } elseelse continuecontinue; order[j][k]ProcessName[i]; breakbreak; FreePartition[j]FreePartition[j]-ProcessNeed[i]; state[i]truetrue; 5 } } } } 3.3循环首次适应算法 3.3.13.3.1 功能功能 该算法是由首次适应算法演变而成, 在为进程分配内存空间时,不再是每次 都从第一个空间开始查找, 而是从上次找到的空闲分区的下一个空闲分区开始查 找, 直至找到第一个能满足要求的空闲分区,从中划出一块与请求大小相等的内 存空间分配给作业,为实现本算法,设置一个全局变量 f,来控制循环查找,当 fN0 时,f0;若查找结束都不能找到一个满足要求的分区,则此次内存分 配失败。 3.3.23.3.2 数据结构数据结构 privateprivate staticstatic intintMaxNum 100; //空闲分区个数 privateprivate staticstatic intintn; //作业个数 privateprivate staticstatic intintm; //空闲分区大小 privateprivate staticstatic intintFreePartition[] newnew intint[MaxNum]; //作业名称 privatep

注意事项

本文(计算机操作系统课程设计报告存储管理——动态分区分配算法的模拟)为本站会员(sunhongz129)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

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




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


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开