操作系统实验四存储管理实验(2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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、善于同学间的讨论,遇到问题,和自己班上同学讨论能够受益匪浅。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。