操作系统实验四存储管理实验(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jp1=jp;//jp1为jp的前一个节点

jp=jp->next;//继续搜索

}

//将jp2插入到jp1之后、jp之前

jp2->next=jp;

if (jp==NULL)

{ //插到链尾

jp2->back=jp1;

jp1->next=jp2;

}

else

{ //插在链中间

jp2->back=jp->back;

if (jp->back!=NULL)//jp不是首节点

jp1->next=jp2;

else

jobp=jp2;//jp是首节点

jp->back=jp2;

}

} //if (jobp==NULL)

//剩余空白块处理

if (min1->freesize-jl

{ //抛弃碎片fp:从空闲分区链删除此节点。但碎片大小依然反映totalfree.

if (min1->next!=NULL)

(min1->next)->back=min1->back;//fp非尾节点

if (min1->back!=NULL)

(min1->back)->next=min1->next;//fp非首节点

else

freep=min1->next;//fp为首节点

}

else

{ //登记余下空白块fp:节点链指针不变,调整块的大小及地址min1->freesize=min1->freesize-jl;

min1->freeaddress=min1->freeaddress+jl;//分配空白块前半部分}

return;

}

四、程序运行结果截图

五、实验总结及进一步改善建议

1、通过今天的实验操作,自己初步熟悉理解内存分配和回收原理,学会了在控制台内观察Linux内存分配情况,对内存的最先分配算法和最佳分配算法有了更深刻的理解。

2、这次实验过程中数据结构有了更深刻的理解,特别是对链表的各项操作,以及链表等数据结构在操作系统中的应用,每次的对我的思考能力也是不小的锻炼。

3、要有坚信自己可以独立完成的信心,敢于攻坚,越是难的问题,越是要有挑战的心理,要迎难而上,不要半途放弃。

4、善于同学间的讨论,遇到问题,和自己班上同学讨论能够受益匪浅。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。

相关文档
最新文档