




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深 圳 大 学 实 验 报 告 课程名称:连续式与分页式主存管理的模拟实现 实验项目名称: 进程的控制 学院: 信息工程学院(软件学院) 专业: 软件工程 指导教师: 白鉴聪 报告人: 罗城龙 学号: 班级: 软件班 实验时间: 实验报告提交时间:教务处制实验目的与要求:模拟在连续分配与分页管理两种方式下,主存空间的分配与回收,帮助学生加深了解存储器管理的工作过程。方法、步骤:1、 根据例程,尝试采用首次适应算法、循环首次适应算法、最佳适应算法其中的一种或多种算法实现的动态分区分配。算法思想请参考课本的分区分配算法。2、 根据例程,尝试实现的分区回收功能。3、 根据例程,尝试实现的分页系统功能4、 至少完成上述三项实验内容中的一个。5、 自行设定内存总空间,大小单位为,分页管理需要设定每个页的大小。6、 随机设置当前内存分配状态。7、 自行设计作业队列,队列中至少要有个作业,设定各个作业空间大小,大小要适中。8、 输出结果要尽量详细清晰,如果输出内容比较多,可以考虑把输出结果保存到文件中,通过文件来查看。9、 程序代码要尽量加入注释,提高程序的清晰度与可读性。10、 在实验报告中,一方面可以对实验结果进行分析,一方面可以对两种分配方式进行比较,分析它们的优劣。实验过程及内容:循环首次适应算法:关键源代码:1 * 声明一个的指针,用于保留循环的开始位置2 ()在初始化函数()最后加一个语句,用于 指针的初始化,因为它开始也要指向空 链的起始 ; 实现关键函数 ( *) * ;循环首次适应算法 ; ( ) ( ) ;直接把作业数据块插入已分配队列()插入作业数据块到已分配队列产生碎片,需要修改被分配空闲区的参数产生小碎片,指向它 ; ;指向分配后的下一个指针(分配成功!, ); ( )刚好满足 ;直接把作业数据块插入已分配队列 指向分配后的下一个指针();();从空闲队列中删除该空闲区(分配成功!, );空闲块太小,则指向下一个空闲块。 ( ) ;() ; () ( ) ;直接把作业数据块插入已分配队列()插入作业数据块到已分配队列产生碎片,需要修改被分配空闲区的参数产生小碎片,指向它 ; ;指向分配后的下一个指针(分配成功!, ); ( )刚好满足 ;直接把作业数据块插入已分配队列 指向分配后的下一个指针();();从空闲队列中删除该空闲区(分配成功!, );空闲块太小,则指向下一个空闲块。 ( ) ; (!当前空闲区不能满足的大小!, , );分页系统:关键源码:1 关键函数 ( )分配内存 , , ; ;(); 检查当前剩余空间能否满足作业 ( ) (!当前空闲区还剩, 不能满足作业的大小!, *); ;计算分配的空白块数. ; () ; () () () ; ; ; ; 从内存状态表查找空闲块,分配出去,修改状态将分配的块号记录到作业分配中修改空闲块总数减少 (作业分配成功, 共分配块, 分配块号为:); ( ; ; ) (, ); (); ;数据处理分析:循环首次适应算法:实验数据为个进程,需要的大小都为分析实验结果,正确!分页系统:实验数据设计:五个进程,需要的空间都为分析实验数据,正确。实验结论:1 虽然循环首次适应算法减少了小内存块的形成,但也会造成没有大的内存块的剩余,导致大进程无法得到资源。2 分页式内存管理虽然避免了内存块的分割,但因为进程所需要的内存的不确定性,会使在页表的管理上花费更多的资源,页面的大小无法很精确最合适的确定。3 连续式主存管理比分页式主存管理要低效的多。指导教师批阅意见:成绩评定: 指导教师签字: 年 月 日备注:注:、报告内的项目或内容设置,可根据实际情况加以调整和补充。、教师批改学生实验报告时间应在学生提交实验报告时间后日内。完整源码:循环首次适应算法: : .矚慫润厲钐瘗睞枥庑赖。矚慫润厲钐瘗睞枥庑赖賃。 本程序用于模拟内存连续分配与分页式分配的管理 () (*)() ()系统内部函数 ( )停顿秒,该函数为函数,在不同环境下可能会不同 ; () * ();( () ); ()停顿,按任意键继续 ;(按任意键继续.);(); ;实验参数设置 定义内存块结构 ;起址 ;长度 ;如果已分配,设置对应的作业名 * ; 指向下一个 * ; 为临时指针 ; ;内存总量,单位为 ;用户区起址,我们假设作业只能载入用户区,从开始往后分配聞創沟燴鐺險爱氇谴净。聞創沟燴鐺險爱氇谴净祸。 ; * ; 记录每个作业分配内存的起址长度内容 * ;作业队列(按先到先安排的次序分配内存空间) * ;空闲表,用数组没用 * ;已分配队列操作 ()显示当前内存状态 ;(*当前内存分配状态:); () (: ., () (), ); 残骛楼諍锩瀨濟溆塹籟。残骛楼諍锩瀨濟溆塹籟婭。; ( *, *)复制,注意不能复制,可能会出错酽锕极額閉镇桧猪訣锥。酽锕极額閉镇桧猪訣锥顧。 ; ;(, ); ( *) * ;();(, )。指向待分配的作业 。用来把待分配的作业链接到已分配作业连队的最后面彈贸摄尔霁毙攬砖卤庑。彈贸摄尔霁毙攬砖卤庑诒。 () )。将指针移动到最后 ; ; 。重新释放临时指针。可以考虑重新排序,使输出好看 . ( *)。用来移除作业,得到新的内存空间 * , * ; ( )。指向要释放的作业 。跳过要释放的作业(); ;获取前一个指针 ; () ( ) ; ; ( ) (不在内存中,卸载作业出错!, ); ; 把删除,他的前后指针要连接起来。是否要加个?謀荞抟箧飆鐸怼类蒋薔。謀荞抟箧飆鐸怼类蒋薔點。();空闲区队列操作 ()显示当前内存状态 ;(*当前空闲区:); () (., , 未分配); 厦礴恳蹒骈時盡继價骚。厦礴恳蹒骈時盡继價骚卺。; 。作业释放掉后要重新利用释放掉的空间,即回收机制(要完成) ( *) ( *) * , * ; ( ) ;(); ;获取前一个指针 ; () ( ) ; ; ( ) (!没有这个空闲块,修改空闲表失败!); ; 把当前空闲块删除,他的前后指针要连接起来(); ( *)释放一个数据块(); ()初始化 ; * ; (; ; (, ); ; ;第一个块是系统区。用于指向分配链的链头 ;用户区初始化();创建已分配内存块 ; ;(, );作业 ; ; ;();创建已分配内存块 ; ;(, );缓冲区 ; ; ;();创建已分配内存块 ; ;(, );镜像区 ; ;()。显示已分配区域根据上面的数据,初始化空闲表(竟然要手动,不好)();创建空闲区 ; ;(, ); ; ;第一个空闲块。用于指向链头 ;();创建空闲区 ; ;(, ); ; ; ;();最后一个空闲区 ; ;(, ); ; ; ;()。显示空闲区域 ; () 输入作业参数 , , ; ; * ;( 作业总数为:); (); ;( ;作业起址等于表示该作业没有分配内存 ;(, 作业);(, , ); 把一整数转换为字符串(, ); ; ( ) ; ; ; (作业队列为:); ;() (: ., , ); 茕桢广鳓鯡选块网羈泪。茕桢广鳓鯡选块网羈泪镀。; ; ( *) * ;循环首次适应算法 ; ( ) ( ) ;直接把作业数据块插入已分配队列()插入作业数据块到已分配队列产生碎片,需要修改被分配空闲区的参数产生小碎片,指向它 ; ;指向分配后的下一个指针(分配成功!, ); ( )刚好满足 ;直接把作业数据块插入已分配队列 指向分配后的下一个指针();();从空闲队列中删除该空闲区(分配成功!, );空闲块太小,则指向下一个空闲块。 ( ) ;() ; () ( ) ;直接把作业数据块插入已分配队列()插入作业数据块到已分配队列产生碎片,需要修改被分配空闲区的参数产生小碎片,指向它 ; ;指向分配后的下一个指针(分配成功!, ); ( )刚好满足 ;直接把作业数据块插入已分配队列 指向分配后的下一个指针();();从空闲队列中删除该空闲区(分配成功!, );空闲块太小,则指向下一个空闲块。 ( ) ; (!当前空闲区不能满足的大小!, , );鹅娅尽損鹌惨歷茏鴛賴。鹅娅尽損鹌惨歷茏鴛賴縈。主程序 ( , * ) ; * ;(); ();为作业分配内存(作业分配开始!); ; ()();();();(); ;(作业分配结束!);(); ;分页管理完整源码:本程序用于模拟内存分页式分配管理同学们可以参考本程序代码,重点是理解思想,不能照抄!注释变量名函数名输出的提示信息,乃至语句都要自行重新编写!由于本程序很简单, 所以关键代码不再提供!请在最后提交的程序中删除上面所有语句,包括这一句! ()系统内部函数 ( )停顿秒,该函数为函数,在不同环境下可能会不同 ; () * ();( () ); ()停顿,按任意键继续 ;(按任意键继续.);(); ; ()产生一个, 的随机数 ; ();实验参数设置可以自行调整 ; ;内存总块数 ;每块大小为 ;空闲块数 ;已分配块数 ;作业队列,记录每个作业的大小 ;每个作业分配的块号每个作业都对应一个长度为的数组,数组第个元素记录分配总块数上面用数组来创建作业队列与作业块号, 这是很浪费资源的同学们可以使用指针创建动态数组, 或者链表. ;作业数量 ;每块状态 ()初始化 ; ;( ()( ) );();初始化随机种子,保证后面生成随机数都不同 ; (; ) ;已分配 ;未分配; ;(页面初始化完毕,内存共有块,每块大小为., , );籟丛妈羥为贍偾蛏练淨。籟丛妈羥为贍偾蛏练淨槠。(其中已分配块, 尚有块空闲, 未分配块号为:, , );預頌圣鉉儐歲龈讶骅籴。預頌圣鉉儐歲龈讶骅籴買。 (; ; ) ( )(, );(); () 输入作业参数 ;( 作业总数为:); (); () ( 输入第号作业的大小:, ); (); (作业队列为:); ( ) (!当前空闲区还剩, 不能满足作业的大小!, *);渗釤呛俨匀谔鱉调硯錦。渗釤呛俨匀谔鱉调硯錦鋇。 ;计算分配的空白块数. ; () ; () () () ; ; ; ; 从内存状态表查找空闲块,分配出去,修改状态将分配的块号记录到作业分配中修改空闲块总数减少 (作业分配成功, 共分配块, 分配块号为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5G技术驱动下的2025年互联网医疗在线问诊质量控制报告
- 文化传播公司品牌营销与推广策略制定
- 玩具行业的数字化转型与并购案例分析-洞察及研究
- 助听器验配师能力提升B卷题库及参考答案详解(夺分金卷)
- 视觉符号传播规律-洞察及研究
- 社会资本进入医疗行业2025年政策利好与投资风险提示
- 中级银行从业资格之中级银行业法律法规与综合能力综合检测提分(历年真题)附答案详解
- 注册公用设备工程师能力检测试卷含完整答案详解(全优)
- 自考公共课模拟试题及参考答案详解AB卷
- 专升本练习题附答案详解【培优A卷】
- 2025新版企业员工劳动合同范本
- PCR实验室基因扩增检验人员培训试题及答案
- 2025年全国版图知识竞赛(中学组)历年参考题库含答案详解(5卷)
- 2025年西藏自治区三支一扶人员招募考试(公共基础知识)历年参考题库含答案详解(5卷)
- 2025年富县辅警考试题库(附答案)
- 2026届张家港市达标名校中考语文模试卷含解析
- 保密观试题含答案2025年
- 柏拉图教育思想体系解析
- 奶茶线上活动方案
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 公开课第一课素描基础入门课件
评论
0/150
提交评论