主存空间的分配与回收实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这两张表的实现方法一般由两种:链表形式、顺序表形式。在本实验中, 采用顺序表形式,用数组模拟。由于顺序表的长度必须提前固 定,所以无论是 “已分配区表”还是“空闲区表”都必须事先确定长度。它们的长度必须是系统可能 的最大项数,系统运行过程中才不会出错,因此在多数情况下, 无论是“已分 配表区”还是“空闲区表”都是空闲栏目。已分配区表中除了分区起始地址、长度
1、实验目的:
熟悉主存的分配与回收。理解在不同的存储管理方式下,如何实现主存空 间的分配与回收。掌握动态分区分配方式中的数据结构和分配算法及动态分区 存储管理方式及其实现过程。
2、实验要求
实验要求使用可变分区存储管理方式,分区分配中所用的数据结构采用空 闲分区表和空闲分区链来进行,分区分配中所用的算法采用首次适应算法、循 环首次适应算法、最佳适应算法三种算法来实现主存的分配与回收。同时,要 求设计一个实用友好的用户界面,并显示分配与回收的过程。
1. 设计记录主存使用情况的数据表格 由 于动态分区的大小是由作业需求量决定的,故分区的长度是预先不固定的, 且分区的个数也随主存分配和回收变动。总之,所有分区情况随时可能发生变 化,数据表 格的设计必须和这个特点相适应。由于分区长度不同,因此设计的 表格应该包括分区在主存中的起始地址和长度。由于分配时,空闲区有时会变 成两个分区:空闲区 和已分分区,回收主存分区时,可能会合并空闲区,这样 如果整个主存采用一张表格记录已分分区和空闲区,就会使表格操作繁琐。主 存分配时查找空闲区进行分 配,然后填写已分配区表,主要操作在空闲区;某 个作业执行完后,将该分区贬词空闲区,并将其与相邻的空闲区合并,主要操 作也在空闲区。由此可见,主存的分 配与回收主要时对空闲区的操作。这样为 了便于对主存空间的分配与回收,就建立两张分区表记录主存的使用情况:“已 分配区表”记录作业占用分区,“空闲区 表”记录空闲区。
空闲区 2 (146KB)
第一栏 第二栏
起始地址 45 K 110 K
长度 20KB 146 KB
状态 未分配 未分配 空表目 空表目
其中,起址——指出一个空闲区的主存起始地址,长度指出空闲区的大小。 长度——指出从起始地址开始的一个连续空闲的长度。 状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某
主存空间的分配与回 收实验报告
用心整理的精品 word 文档,下载即可编辑!!
实验报告
课程名称: 操作系统
实验名称: 主存空间的分配与回收

号: 110310014
学生姓名: 于钊

级: 信管 1101 班
指导教师: 吴联世
实验日期: 2013 年 12 月 5 日
2 精心整理,用心做精品
用心整理的精品 word 文档,下载即可编辑!!
2)程序结构(流程图)
ቤተ መጻሕፍቲ ባይዱ
首次适应分配模拟算法
5 精心整理,用心做精品
用心整理的精品 word 文档,下载即可编辑!!
主存回收算法
3)实现步骤 实现动态分区的分配与回收,主要考虑三个问题:第一,设计记录主存使用
情况的数据表格,用来记录空闲区和作业占用的区域;第二,在设计的数据表 格基础上设计主存分配算法;第三,在设计的数据表格基础上设计主存回收算 法。
个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空 白(无效),可用来登记新的空闲区(例如,作业完成后,它所占的区域就成 了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分 区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否 则造成表格“溢出”无法登记。
4 精心整理,用心做精品
用心整理的精品 word 文档,下载即可编辑!!
3、采用最先适应算法(顺序分配算法)分配主存空间。 按照作业的需要量,查空闲区说明表,顺序查看登记栏,找到第一个能满足 要求的空闲区。当空闲区大于需要量时,一部分用来装入作业,另一部分仍为 空闲区登记在空闲区说明表中。 由于本实验是模拟主存的分配,所以把主存区分配给作业后并不实际启动装 入程序装入作业,而用输出“分配情况”来代替。 4、当一个作业执行完成撤离时,作业所占的分区应该归还给系统,归还的 分区如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明 表中。例如,在上述中列举的情况下,如果作业 2 撤离,归还所占主存区域 时,应与上、下相邻的空闲区一起合成一个大的空闲区登记在空闲区说明表 中。

3、实验环境
硬件: CPU :AMD QL64 内存:2GB 显卡:ATI 4570 硬盘:日立 250G 软件:Windows 2000/XP。 开发工具:VC++6.0。
4、实验内容
1)实现原理 主存的分配和回收的实现是与主存储器的管理方式有关的。所谓分配,就
是解决多道作业或多进程如何共享主存空间的问题。所谓回收,就是当作业运 行完成时将作业或进程所占的主存空间归还给系统。
可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业 的需求,并且分区个数是可以调整的。当要装入一个作业时,根据作业需要的 主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该 作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间 被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。
3 精心整理,用心做精品
用心整理的精品 word 文档,下载即可编辑!!
为了说明那些分区是空闲的,可以用来装入新作业,必须有一张空闲说明表 例如:
0
空闲区说明表格式如下:10k
20k 45k 65k
110k
256k
操作系统 (10KB) 作业 1(10KB) 作业 4(25KB) 空闲区 1(20KB) 作业 2(45KB)
2、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个 足够大的空闲区。有时找到的空闲区可能大于作业需要量,这时应把原来的空 闲区变成两部分:一部分分给作业占用;另一部分又成为一个较小的空闲区, 留在空闲区表中。为了尽量减少由于分割造成的空闲区,尽可能分配低地址部 分的空闲区,而尽量保存高地址部分有较大的连续空闲区域,以利于大型作业 的装入。为此,在空闲区说明表中,把每个空闲区按其地址顺序从低到高登 记,即每个后继的空闲区其起始地址总是比前者大。为了方便查找还可使表格 “紧缩”,总是让“空表目”项留在表格的后部。
相关文档
最新文档