欢迎来到天天文库
浏览记录
ID:38414202
大小:474.99 KB
页数:28页
时间:2019-06-12
《主存空间的分配与回收1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第12页共28页华东交通大学理工学院课程设计报告存档资料成绩: 华东交通大学理工学院课程设计报告书所属课程名称计算机操作系统题目 主存空间的分配与回收 分院 电信分院 专业班级计算机科学与技术学 号 学生姓名 指导教师2012年6月21日第3页共27页第12页共28页华东交通大学理工学院课程设计报告目 录第1章课程设计内容及要求............第2章需求分析.....................?第3章概要设计......................?第4章调试分析......................?第5章用户使用说明..........
2、.........第6章课程设计心得...................第7章参考文献.......................?第12页共28页第12页共28页华东交通大学理工学院课程设计报告第一章课程设计内容及要求:主存是中央处理器能直接存取指令和数据的存储器,能否合理地利用主存,在很大程度上将影响到整个计算机的性能。通过本次实验可以帮助理解主存空间的分配与回收的几种算法:①掌握最先适应分配算法;②掌握最优适应分配算法;③掌握最坏适应分配算法。编程序实现下述在不同的存储管理方式下的主存空间的分配与回收,其中原始数据设为空闲区说明表结构体(1).设计基于空闲区说明表的可变分区分配与
3、回收算法;(2).或设计基于空闲区链表的可变分区的分配与回收;第12页共28页第12页共28页华东交通大学理工学院课程设计报告第二章需求分析:硬件需求本系统适用于现用的各种类型的计算机,内存容量建议为128MB以上,不必配备外部附加设备软件需求ubuntu开发工具,vi编译器。设计需求内存的分配与回收是内存管理的主要功能之一。无论采取哪一种管理和控制方式,能否把外存中的数据和程序调入内存,取决于内否在内存中为他们安排合适的位置。因此,存储管理模块要为每一个并发执行的进程分配内存空间。另外,当进程执行结束之后,存储管理模块又要及时回收该进程所占用的内存资源,以便给其他进程分配空间。但由于作业
4、大大小不一,所以系统为作业分配内存大小不一,在释放时造成系统资源的浪费。因此,采取首次适应算法,以及那少内存的浪费。第12页共28页第12页共28页华东交通大学理工学院课程设计报告第三章概要设计:算法设计思想初始化系统的内存分区说明表;输入当前作业或进程的使用内存情况,检索系统内的内存分区说明表,判断是否可分配,也就是查看是否有足够的空闲空间,若有,则按需求量分割一部分给作业;若无;则作业等待。随着作业的装入、完成,主存空间被分割成许多大大小小的分区。有的分区被作业占用,有的分区空闲。使用内存的分配和回收算法进行,完成所有作业或进程的内存使用请求,作业完成后回收其所占用的内存给系统;并可输
5、出查看内存的当前使用状况。例如,某时刻主存空间占用情况如图3-1所示。(1)为了说明哪些分区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,如表3-1所示。操作系统(10KB)作业1(10KB)作业4(25KB)空闲区1(20KB)作业2(45KB)空闲区2(146KB)起始地址长度状态45K20KB未分配110K146KB未分配空表目空表目空表目………010K20K45K65K110K256K3-1主存空间占用情况表3-1空闲区说明表其中,起始地址指出各空闲区的主存起始地址,长度指出空闲区大小。第12页共28页第12页共28页华东交通大学理工学院课程设计报告状态有:未分配:该栏目
6、是记录的有效空闲区。空表目:没有登记信息。由于分区个数不定,所以空闲区说明表中应有足够的空表目项。否则造成溢出,无法登记。同样,再设一个已分配区表,记录作业或进程的主存占用情况。(2)当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。有时找到的空闲区可能大于作业需求量,这时应将空闲区一分为二。一个分给作业;另一个仍作为空闲区留在空闲区表中。为了尽量减少由于分割造成的碎片,尽可能分配低地址部分的空闲区,将较大空闲区留在高地址端,以利于大作业的装入。为此在空闲区表中,按空闲区首地址从低到高进行登记。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后
7、部。(3)当一个作业执行完成时,作业所占用的分区应归还给系统。在归还时要考虑相邻空闲区合并的问题。作业的释放区与空闲区的邻接分以下4种情况考虑:A.释放区下邻(低地址邻接)空闲区;B.释放区上邻(高地址邻接)空闲区;C.释放区上下都与空闲区邻接;D.释放区与空闲区不邻接。数据结构的设计区说明表的设计structfreearea{intstartaddress;/*空闲区的起始地址号*/intsize;/*空闲区的大小*/
此文档下载收益归作者所有