摘要: 内存动态分区管理的算法是操作系统课程中一个重要内容,理解和学习不同的分区算法能够为深入学习操作系统等知识提供一定的理论知识和实践依据。本文采用C语言程序设计出最佳适应算法来模拟计算机内存分区管理,减少内存分配时产生的碎片,以此提高操作系统的稳定性。
关键词: C语言;模拟;内存分区;分配管理;最佳适应算法
中图分类号:TP301 文献标识码:A 文章编号:1006-4311(2013)16-0214-02
1 模拟算法的设计思想
计算机操作系统的最佳适应算法(Best Fit)是动态内存分区分配算法的一种[1]。它能够从全部空闲区找出满足作业要求并且最小的空闲分区,这种算法能够让产生的碎片尽量缩小。为了提高寻找速度,这种算法要求将所有的空闲区按其内容以从小到大的顺序形成一个空闲分区链。这样,第一次找到的能满足要求的空闲区,必然是最佳的[2]。最佳适应算法利用的思想就是将地址相邻近的自由区与回收区进行有效地合并,通过初始化空闲区、分配空闲区、回收空闲区实现模拟的内存管理,从而尽量减少碎片的产生,并尽可能的利用内存空间。
2 模拟算法的设计
2.1 定义空闲分区链结构
初始化时内存分配最大值定义为35670。
全局变量申明:
设置分区描述器:
2.2 主函数
主函数main()包括:建立头结点head;定义内存分配申请1和回收内存2的选择,如果输入1则输入申请的内存大小并调用分配函数assign1=assignment(head,application1),若assign1->address==-1则分配不成功&