收藏到会员中心
|
文档题目: |
可变分区存储管理实验 |
 |
上传会员: |
pengcheng |
提交日期: |
2014-06-05 14:02:10 |
文档分类: |
文档下载 |
浏览次数: |
45 |
下载次数: |
0
次 |
|
|
下载地址: |
可变分区存储管理实验 如何获取积分? |
下载提示: |
不支持迅雷等下载工具,请右键另存为下载,或用浏览器下载。不退出登录1小时内重复下载不扣积分。
|
文档介绍: |
以下为文档部分内容,全文可通过注册成本站会员下载获取。也可加管理员微信/QQ:17304545代下载。
|
文档字数: |
|
可变分区存储管理实验
可变分区存储管理一.实验题目:
编写一个C程序,用char *malloc(unsigned size)函数向系统申请一次内存空间(如size=1000,单位为字节),用循环首次适应法addr = (char *)lmalloc(unsigned size) 和lfree(unsigned size,char * addr)模拟UNIX可变分区内存管理,实现对该内存区的分配和释放管理。
可变分区存储管理 二.算法思想:
本实验采用循环首次适应法分配和回收内存空间,并用双向链表的形式来存储空闲分区表,目的是为了便于对空闲分区表中单元节点的添加和删除操作,提升系统效率。
算法说明
可变分区存储管理分配算法
采用双向链表保存空闲分区表时,将该链表设置成环形链表,并为该表设立head和tail两个指针,且无操作时,head和tail指向同一节点空间。当用循环首次适应法为作业分配大小为size的空闲区时,总是将tail指针从tail原指向节点开始查找。
当第一次找到大于或等于申请大小的空闲区时,就按所需大小分配给作业。如果非配后院空闲区还有剩余空间,则修改tail当前所指向节点的m_size和m_addr的值,使它记录余下的“零头”。如果作业所需空间正好等于该空闲区大小,那么就删除tail所指向的节点,并将tail指针指向下一个节点。分配并处理好空闲分区表结束后,将head指针指向tail所指的节点空间。并返回分配成功信息。
可变分区存储管理当tail指针和head指针再次重合时,仍没有找到大于或等于申请大小的空闲区,则返回分配失败信息。
(本文由word文档网(www.wordocx.com)会员上传,如需要全文请注册成本站会员下载) |
|