可变分区存储管理及可重定位分区存储管理实验报告.docVIP

可变分区存储管理及可重定位分区存储管理实验报告.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文档。上传文档
查看更多
可变分区存储管理及可重定位分区存储管理实验报告

可变分区存储管理及可重定位分区存储管理实验报告 实验目的与要求 通过消化理解模拟管理程序,了解存储器的分配与回收过程,体会相关数据结构在实现管理算法中的重要性。 输入一到两组实验数据,观察分配与回收的处理结果,特别是回收时邻接空闲分区的合并处理,检测其算法的正确性。 算法思想 1、可变分区存储管理 (1)算法实现 a.分配:查空闲分区链表 b.回收:考虑邻接合并 (2)实验过程:输入操作命令代码 a.分配:输入作业号及作业长度(已建立作业不重复建立) b.回收:输入作业号(不存在作业不释放空间) c .可查看空闲链表情况(检测分配、回收正确性) d.可查看作业表情况(检测分配、回收正确性) 2、可重定位分区存储管理 在前述可变分区存储管理实验基础上修改实现,即遇大作业存在碎片不够分配时 进行合并处理。 注:实现拼接(移动,合并): 设立按作业地址排列的有序链表,即用静态链表实现(作业表增加静态链仿真指针),在此基础上按地址从小到大顺序依次向前移动(紧凑处理)。 算法实现(可重定位分区存储管理) 1、修改相关数据结构 (1)作业表增加链接仿真指针 int next;分量 (2)构造有序静态链表(初始化时next均赋值-1) (3)增加静态链首指针Linkp及空闲总容量计数变量size(注:初始化时Linkp=-1, size=n) 2、修改分配函数 判断新建立作业长度是否小于等于空闲总容量size值。 若无足够大分区,则先进行合并处理后再分配; 若有足够大分区,则按可变分区分配算法处理; 若作业长度超过总空闲容量,则产生溢出(无内存)。 3、增加插入排序操作函数(sort_tab()) 分配新作业空间,则按新作业分区首地址大小,将作业表表项插入静态链表。回收时,还必须从中删除。 4、增加拼接(移动)操作函数(compact()) 主要是修改作业表表目内容及空闲分区链表,用模拟操作函数 move()进行模拟搬家前移。 5、增加显示静态链表内容的较出操作函数 (printsorttab()) 四、算法流程 1、可变分区存储管理 (1)主程序(main()函数) (2)分配程序(allocm()函数) (3)回收程序(freem()函数) (4)显示空闲分区链表及作业表程序(printlink()及printtab()函数) 注:主程序(main()函数) 分配程序(allocm()函数) 回收程序(freem()函数) 有四种情形(假定回收区首地址 = addr,长度 = length) (1)空闲分区链表空,或不与任何空闲区邻接= 分配新结点空间,存入回收作业首地址及长度插入空闲分区链(链首,链中,链尾) (2)回收分区与后一空闲分区相邻接= 进行后邻接合并 (3)回首分区与前一空闲分区相邻接 (4)回收分区与前同时又与后空闲分区相邻接= 需进行三个分区合并,并删除一个空闲分区结点 注:除了修改空闲分区链表,还要修改作业表(清除flag标志) 2、可重定位分区存储管理 (1)分配程序(修改allocm()函数) (2)回收程序(修改freem()函数) (3)有序静态链表插入操作程序(sort_tab()函数) (4)拼接(移动)操作程序(compact()函数) (5)输出有序静态链表操作程序(printsorttab()函数) 注:分配程序(修改allocm()函数) 回收程序(修改freem()函数) 有序静态链表插入操作程序(sort_tab()) 实验步骤 1、可变分区存储管理 (1)消化实验算法程序 (2)组织上机实验数据 (3)第一组:指定 (4)第二组:自定(要求能测试各种情形) (5)输入上机程序,编译,运行,记录各操作步骤的运行结果(通过显示空闲分区链表及作业表) 2、可重定位分区存储管理 (1)阅读相关算法程序 (2)组织调试数据(必须包含需合并的操作) (3)上机运行、调试(测试),记录运行情况,分析运行结果 六、实验运行情况

文档评论(0)

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

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

1亿VIP精品文档

相关文档