好文档 - 专业文书写作范文服务资料分享网站

动态分区存储管理方式的主存分配回收实验参考

天下 分享 时间: 加入收藏 我要投稿 点赞

动态分区存储管理方式的主存分配回收实验参考

The Standardization Office was revised on the afternoon of December 13, 2020

动态分区存储管理方式的主存分配回收实验报告

一、实验目的

深入了解动态分区存储管理方式的主存分配回收的实现。

二、实验要求

编写程序完成动态分区存储管理方式的主存分配回收的实现。实验具体包括:首先确定主存空间分配表;然后采用最优适应算法完成主存空间的分配,完成主存空间的回收;最后编写主函数对所作工作进程测试。

三、实验原理:

存储管理中动态分区的管理方式。

四、实验程序设计

1. 数据结构

? 已分分区表的数据结构定义 #define n 10 能函数设计

1) 系统数据初始化 free_table[0].address=10240; free_table[0].length=102400; free_table[0].flag=1; lag=0; lag='0';

2) 分配函数

void CExp3Dlg::allocate(CString J, float xk) ength>=xk&&free_table[i].flag==1) if(k==-1||free_table[i].length

lag!='0' && i

else ddress=ad;

used_table[i].length=xk; used_table[i].flag=J; }

return;

}

3) 回收函数

void CExp3Dlg::reclaim(CString J) lag!=J||used_table[s].flag=='0')&&s

if(s>=n) lag='0'; ddress;

L=used_table[s].length; j=-1;k=-1;i=0; lag==0) { if(free_table[i].address+free_table[i].length==S) k=i; ddress==S+L) j=i; ength=free_table[j].length+free_table[k].length+L;

free_table[j].flag=0; } else ength=free_table[k].length+L; else if(j!=-1) ddress=S; free_table[j].length=free_table[j].length+L; } else lag==1&&t=MMM) lag=J; return; } free_table[t].address=S; free_table[t].length=L; free_table[t].flag=1; } return; }

4) 按钮函数设计 ? 【分配】按钮

void CExp3Dlg::OnButtonAlloc() {

this->UpdateData(true); CString name; float size;

name=this->m_EDIT_NAME; size=this->m_EDIT_SIZE;

动态分区存储管理方式的主存分配回收实验参考

动态分区存储管理方式的主存分配回收实验参考TheStandardizationOfficewasrevisedontheafternoonofDecember13,2020动态分区存储管理方式的主存分配回收实验报告一、实验目的深
推荐度:
点击下载文档文档为doc格式
0wd7s8slji38gut0xsx29kcek7hlwh013x4
领取福利

微信扫码领取福利

微信扫码分享