- 7
- 0
- 约4.04千字
- 约 9页
- 2019-09-03 发布于江苏
- 举报
PAGE 8
1 需求分析
1)本程序要求实现对内存的动态分配与回收的模拟,同时,在内存的分配时还必须使用首次适应算法,最后,还要显示内存块分配和回收后空闲内存分区链的情况。
2)要实现对作业的内存分配,首先要有一个对作业进行创建和分配内存的模块,其中,该模块在分配内存时要使用首次适应算法;要实现对内存的回收,要有一个内存回收的模块,其中,该模块在回收内存时要考虑内存回收的四种情况;最后,还要有一个能显示内存空闲分区链的情况的模块。
2 概要设计
1)首次适应算法的结构如图1:
图1 首次适应算法的结构图
从链首开始顺序查找
从链首开始顺序查找
空闲分区链完否?
返 回
分区大小所需大小?
分区大小-所需大小=
不可再分割大小?
从该分区中划出所需大小的新分区
将该整个分区从空闲分区链中移出
将该分区分配给相应的作业,修改有关数据
返 回
Y
继续检索下一个表项
Y
N
N
N
Y
2)数据结构:
struct Fq
{
int size,o,no;
Fq *before,*next;
};
其中,Fq表示结构体的名字(类型),size表示分区的可用空间大小,o表示该分区的状态(是否已分配),no表示该分区中的作业标志,*before表示该结点的向前指针,*next表示该结点的向后指针。
3)各种函数说明:
void alloc(int b,int no,Fq
原创力文档

文档评论(0)