教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

操作系统实验四报告-主存空间分配和回收(含源码)(6)

来源:网络收集 时间:2026-05-23
导读: 九、所遇困难的解决以及心得体会 本实验我采取用一条链表同时表示空闲分区链和主存空间占用情况,因为主存总大小是固定的,把空闲分区链所表示的区域从总的内存里去除就是被占用的空间的大小,这个实验还是比较简单

九、所遇困难的解决以及心得体会

本实验我采取用一条链表同时表示空闲分区链和主存空间占用情况,因为主存总大小是固定的,把空闲分区链所表示的区域从总的内存里去除就是被占用的空间的大小,这个实验还是比较简单的,但在执行过程中还是遇到了很多问题,如在回收空间的函数中,因为要考虑到四种情况,我一开始的想法是这样的:让p指向链表开头,一直等找到p所指向的分区序号等于要删除的分区序号,然后开始执行,当p->prior不是链首first时要考虑p->next是不是链尾end,然后继续考虑p的前向指针和后向指针得状态是否为空闲;等考虑完p->prior不是链首了,就进行考虑p->prior是链首的问题,然后又进行了考虑p->next是不是链尾end,然后继续考虑p的前向指针和后向指针得状态是否为空闲;等考虑完了p->prior的问题又进行考虑p->next的问题,一直这样重复了,我都不知道,当时超烦的,后来静下心重新检查自己写得程序,才知道自己写得这个函数好凌乱。后来我直接把p->next=end的情况去掉了。才使得程序出现好转。当解决了回收问题,发现在回收后有有作业请求分配时,分配序号会出现这种情况,就是有分区序号相等的情况,如下图(a);后来我采用了一个sort()整理分区序号,一开始我把这个函数放到三个算法函数中,还是没有发生改变。然后我又继续检查程序,想到函数sort()放到show()函数中会怎样呢?没想到对了,真的能改变分区序号的值,如图(b)。其实sort()就是实现图(c)里面的功能。当然还不止这两个问题的,不过在这过程序中,整理分区序号和回收内存是让我花的时间最多去解决的问题。总之这次收获还挺大的。

图(a)

26

图(b)

图(c)

27

操作系统实验四报告-主存空间分配和回收(含源码)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/403439.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)