可变分区存储管理实验报告程序设计思路和感悟

可变分区存储管理实验报告程序设计思路和感悟

ID:21759121

大小:298.94 KB

页数:13页

时间:2018-10-24

可变分区存储管理实验报告程序设计思路和感悟_第1页
可变分区存储管理实验报告程序设计思路和感悟_第2页
可变分区存储管理实验报告程序设计思路和感悟_第3页
可变分区存储管理实验报告程序设计思路和感悟_第4页
可变分区存储管理实验报告程序设计思路和感悟_第5页
资源描述:

《可变分区存储管理实验报告程序设计思路和感悟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验题目:可变分区存储管理一、实验目的可变分区存储管理方式是操作系统中存储管理的重耍方式,其主耍思想是用户作业进行连续存储,每次按照用户的请求,如果内存中有能满足用户作业大小的空闲区,就采用不同的算法分配给用户,否则,不分配,可变分区容易产生外零头。分区分配算法包括最佳适应算法、最坏适应算法、首次适应算法等。通过本实验可加深学生对存储器管理方式的把握以及分配算法的理解,并提高程序设计的能力。个人PC机WindowsXP操作系统I5-2400CPU3.10Ghz2GB内存C-FreeC语言程序设计软件三、实验的重点

2、和难点可变分区的的收回四、实验内容利用C语言或C++语言或Java语言实现可变分区存储管理,具体要求如下:1.以一个一维数组模拟内存,数组类型为整型,共计1000个元素;2.用一个单链表表示可变分区空闲表,链表每个结点表示一个空闲区,每个结点信息包括起始地址、大小。3.分区分配算法采用最佳适应算法、首次适应算法,并将算法用函数实现。4.自己假设几个作业,包括作业的名称、大小,进入系统的顺序。5.初始内存中没有任何作业,随着用户输入的每一个作业的到来,动态为其分配内存。6.使用的算法用户要能够随时更换。五、实验结果

3、或实验代码(1)可变式分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数可以调整。当要装入一个作业时,根据作业需要的内存量,查看是否有足够的空闲空间,若有,则按需求S分割一部分给作业;若没有,则作业等待。随着作业的装入、完成,闪存空间被分割成许多大大小小的分区。有的分区被作业占用,有的分区空闲。例如,某时刻内存空间占用惜况如图1所示。操作系统(10KB)1作业1(10KB)2作业4(25KB)4空闲区1(20KB)6作业2(45KB)110空闲区2(146KB)图1内存空间占用情况为

4、了说明那些分区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,如表1所示。表1空闲区说明表起始地址长度状态45K20K未分配110K146K未分配空表目空表0空表目其中,起始地址指出个空闲区的内存起始地址,长度指出空闲区的大小。状态(未分配:该栏目记录的是有效空闲区)状态(空表目:没有登记信息)由于分区个数不定,所以空闲区说明表中应该有足够的空表目项。否则造成溢出,无法登记。同样,再设一个己分配表,记录作业或进程的内存占用情况。(2)当有一个新作业要求装入内存吋,必须查空闲区说明表,从中找出一个足够大的空

5、闲区。有时找到的空闲区可能大于作业需求量,这时应将空闲区一分为二。一个分给作业,另外一个作为空闲区留在空闲E表中。为了尽量减少由于分割造成的碎片,尽可能分配低地址部分的空闲区,将较大空闲区留在高地址端,以利于大作业的装入。为此在空闲区表中,按空闲区首地址从低到高进行登记。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。其分配框图如图2所示。开始申请XK内存闲区表,输出系统中各数据结构的值。返冋分配给作业的内存始址图2首次迠应算法分配框(3)当一个作业执行完成时,作业所占用的分区应归还给系统

6、。在归还时要考虑相邻空闲区合并的问题。作业的释放区与空闲区的邻接分以下4种情况考虑:•释放区下邻(低地址邻接)空闲区;•释放区上邻(高地址邻接)空闲区;•释放区上下都与空闲区邻接;•释放区与空闲区不邻接。首次适应算法回收框图如图3所示。s=释放区始址L=释放区长度杳空W区说明表(卵)、.7图3首次适应算法回收框图#include"iostream.h”#include"stdio.h"#include"stdlib.h"#include"conio.h"#definen10#definem10#definemi

7、nisize1000struct{floataddress;floatlength;intflag;一个字符的作业名}used_table[n];struct{floataddress;floatlength;intflag;配}free_table[ml;(4)请按首次适应算法设汁内存分配和回收程序。以表2当前使用的基础,初始化空闲区和已分配区说明表值。设计一个作业申清队列以及作业完成后的释放顺序,实现内存的分配与回收。把空闲区说明表的变化情况以及各作业的屮请、释放情况显示或打印出来。表2空闲区说明表起始地址长

8、度状态20K20KB180K50KB1150K100KB1300K30KB0(空表目)600K100KB1空表0程序代码//假定系统允许的最大作业数量为n//假定系统允许的空闲区表最大为m//己分分区起始地址//己分分区长度,单位为字节//己分分区表登记栏标志,用”0”表示空栏0,实验中只支持//已分分区表//空闲区起始地址//空闲区长度,单位为字节//空闲区表登记栏标志

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

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

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