可变分区存储管理系统方式地内存分配回收

可变分区存储管理系统方式地内存分配回收

ID:42409772

大小:179.75 KB

页数:12页

时间:2019-09-14

可变分区存储管理系统方式地内存分配回收_第1页
可变分区存储管理系统方式地内存分配回收_第2页
可变分区存储管理系统方式地内存分配回收_第3页
可变分区存储管理系统方式地内存分配回收_第4页
可变分区存储管理系统方式地内存分配回收_第5页
资源描述:

《可变分区存储管理系统方式地内存分配回收》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告操作系统可变分区存储管理方式的内存分配回收班级:XXXXXXXXXXXX学号:XXXXXXXXXXXX姓名:XXXXXX日期:XXXX.XX.XX上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA012(12)版本历史RevisionsHistory版本号VersionNumber修改项目Tomodifytheproject修订者Redactor日期Date上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA0

2、12(12)目录1引言41.1实验目的41.2参考文档42可变分区存储管理52.1实验原理分析52.2设计思路52.3源程序62.4重要结构体说明102.5重要变量说明102.6结果112.7测试方法对结果的分析112.8接口122.8.1接口设计说明122.9任务设计122.9.1流程图12上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA012(12)1引言1.1实验目的通过首次适应算法、最佳适应算法和最坏适应算法实现主存空间的分配,可以使开发人员更好地理解存储

3、分配算法。1.2参考文档1.操作系统2.3.1节空闲存储区表2.操作系统2.3.2节首次适应法(1.分配算法,2.回收算法)上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA012(12)1可变分区存储管理1.1实验原理分析在可变分区模式下,在系统初启且用户作业尚未装入主存储器之前,整个用户区是一个大空闲分区,随着作业的装入和撤离,主存空间被分成许多分区,有的分区被占用,而有的分区时空闲的。为了方便主存空间的分配和去配,用于管理的数据结构可由两张表组成:“已分配区表

4、”和“未分配区表”。在“未分配表中”将空闲区按长度递增顺序排列,当装入新作业时,从未分配区表中挑选一个能满足用户进程要求的最小分区进行分配。这时从已分配表中找出一个空栏目登记新作业的起始地址和占用长度,同时修改未分配区表中空闲区的长度和起始地址。当作业撤离时已分配区表中的相应状态变为“空”,而将收回的分区登记到未分配区表中,若有相邻空闲区再将其连接后登记。1.2设计思路1、分配算法:采用首次适应法为作来分配大小为size的内存空间时,总是从表的起始端的低地址部分开始查找,当第一次找到大于或等于申请大小的空闲区时,就

5、按所需大小分配给作业。如果分配后原空闲区还有剩余空间,就修改原存储区表项的m_size和m_addr,使它记录余下的“零头”。如果作业所需空间正好等于该空闲区大小,那么该空闲区表项的m_size就成为0,接下来要删除表中这个“空洞”,即将随后的各非零表项依次上移一个位置。2、回收算法:当某一作业回收以前所分配到的内存时,就要将该内存区归还给系统,使其成为空闲区而可被其它作来使用。回收时如释放区与邻近的空闲区相衔接,要将它们合并成较大的空闲区,否则空闲区将被分割得超来越小,最终导致不能利用;另外,空闲区个数越来越多,

6、也会使空闲区登记表溢出。上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA012(12)1.1源程序/*

7、如不会使用文件输入/输出,也不会使用I/O转向做输入和输出结果文件,

8、可以手再抄输出结果后后再输到文件中,实验报告的文字内容由自己掌握,能多能少。*/#include#include/*表的定义*/#defineN5#defineMEMSIZE1000typedefstructmap{unsignedm_size;char*

9、m_addr;};structmapcoremap[N];/*coremap表的初始化程序*/voidinitcoremap(char*addr,unsignedsize){unsignedi;printf("initcoremap,firstaddr:%d",addr);coremap[0].m_size=size;coremap[0].m_addr=addr;for(i=1;i

10、intcoremap(void){unsignedi;/*打印coremap表中各项的m_size和m_addr*/上海交通大学实验报告文档编号Documentnumber版本Version页码PagenumberA012(12)for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。