下载此文档

邢旻鸿 2008431015 动态分区存储管理方式的主存分配回收实验报告.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
动态分区存储管理方式的主存分配回收实验报告
年级 2008级 学号 姓名 邢旻鸿 成绩
专业 信息与计算科学 实验地点 主楼401 指导教师 王硕
实验项目 单处理器系统的进程调度
实验日期 2010年12月19日
一、实验目的
深入了解动态分区存储管理方式的主存分配回收的实现。
二、实验要求
编写程序完成动态分区存储管理方式的主存分配回收的实现。实验具体包括:首先确定主存空间分配表;然后采用最优适应算法完成主存空间的分配,完成主存空间的回收;最后编写主函数对所作工作进程测试。
三、实验原理:
存储管理中动态分区的管理方式。
四、实验程序设计
1. 数据结构
已分分区表的数据结构定义
#define n 10 //假定系统允许的最大作业数量为n
typedef struct used
{
float address; //已分分区起始地址
float length; //已分分区长度,单位为字节
CString flag; //已分配区表登记栏标志,用"0"表示空栏目,作业名表示使用
}USED; //已分配区表
USED used_table[n];
空闲区表的数据结构定义
#define m 10 //假定系统允许的空闲区表最大为m
typedef struct free
{
float address; //空闲区起始地址
float length; //空闲区长度,单位为字节
int flag; //空闲区表登记栏标志,用"0"表示空栏目,用"1"表示未分配
}FREE; //空闲区表
FREE free_table[m];

系统数据初始化
free_table[0].address=10240;
free_table[0].length=;
free_table[0].flag=1;
//空闲区表初始化
for(i=1;i<m;i++)
free_table[i].flag=0;
//空闲区表初始化
for(i=0;i<n;i++)
used_table[i].flag='0';
分配函数
void CExp3Dlg::allocate(CString J, float xk) //采用最优分配算法分配xk大小的空间
{
int i,k;
float ad;
k=-1;
for(i=0;i<m;i++) //寻找空间大于xk的最小空闲区登记项k
if(free_table[i].length>=xk&&free_table[i].flag==1)
if(k==-1||free_table[i].length<free_table[k].length)
k=i;
if(k==-1) //未找到可用空闲区,返回
{
this->MessageBox("无可用空闲区");
return;
}
/*找到可用空闲区,开始分配

邢旻鸿 2008431015 动态分区存储管理方式的主存分配回收实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ogthpsa
  • 文件大小89 KB
  • 时间2021-04-13