第一范文网 - 专业文章范例文档资料分享平台

分页式管理实验报告

来源:用户分享 时间:2025/5/24 10:06:56 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ad=Free_table[k].address+Free_table[k].length; }

//修改已分配区表 i=0;

while(Used_Table[i].flag!=0&&i

if(i>=n) //无表目填写已分分区 {

printf(\无表目填写已分分区,错误\\n\//修正空闲区表

if(Free_table[k].flag==0) //前面找到的是整个空闲分区 Free_table[k].flag=1; else

{//前面找到的是某个空闲分区的一部分

Free_table[k].length=Free_table[k].length+X_K; return; } } else

{//修改已分配表

Used_Table[i].address=ad;

Used_Table[i].length=X_K; Used_Table[i].flag=PRS_NAME; } return;

}//内存分配函数结束

void reclaim(char PRS_NAME) //回收进程名为PRS_NAME的进程所占内存空间 {

int i,k,j,s,t; float S,L;

//寻找已分配表中对应登记项 s=0;

while((Used_Table[s].flag!=PRS_NAME||Used_Table[s].flag==0)&&s

if(s>=n)//在已分配表中找不到名字为PRS_NAME的进程 {

cout<<\找不到该进程\return; }

//修改已分配表

Used_Table[s].flag=0; //取得归还分区的起始地址S和长度L S=Used_Table[s].address; L=Used_Table[s].length; j=-1;k=-1;i=0;

//寻找回收分区的空闲上下邻,上邻表目k,下邻表目j while(i

if(Free_table[i].flag==1) {

if(Free_table[i].address+Free_table[i].length==S)k=i;//找到上邻

if(Free_table[i].address==S+L)j=i;//找到下邻 } i++; } if(k!=-1) if(j!=-1)

// 上邻空闲区,下邻空闲区,三项合并 {

Free_table[k].length=Free_table[j].length+Free_table[k].length+L;

Free_table[j].flag=1;

} else

//上邻空闲区,下邻非空闲区,与上邻合并 Free_table[k].length=Free_table[k].length+L; else if(j!=-1)

//上邻非空闲区,下邻为空闲区,与下邻合并 {

Free_table[j].address=S;

Free_table[j].length=Free_table[j].length+L; }

else //上下邻均为非空闲区,回收区域直接填入 {

//在空闲区表中寻找空栏目 t=0;

while(Free_table[t].flag==1&&t

if(t>=m)//空闲区表满,回收空间失败,将已分配表复原 {

cout<<\内存空闲表没有空间,回收空间失败\Used_Table[s].flag=j; return;

搜索更多关于: 分页式管理实验报告 的文档
分页式管理实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9u3en5po8c0daes3z42i_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top