实验环境:C/C++
一、目的和要求
分区管理是应用较广泛的一种存储管理技术。本实验要求用一种结构化高级语言构造分区描述器,
编制动态分区分配算法和回收算法模拟程序,并讨论不同分配算法的特点。
二、实验内容
1、编写:First Fit Algorithm
2、编写:Best Fit Algorithm
3、编写:空闲区回收算法
三、提示和说明
(一)主程序
1、定义分区描述器node,包括 3个元素:
(1)adr--分区首地址
(2)size--分区大小
(3)next--指向下一个分区的指针
2、定义 3个指向node结构的指针变量:
(1)head1--空闲区队列首指针
(2)back1--指向释放区node结构的指针
(3)assign--指向申请的内存分区node结构的指针
3、定义 1个整形变量:
free--用户申请存储区的大小(由用户键入)
(二)过程
1、定义check过程,用于检查指定的释放块(由用户键入)的合法性
2、定义assignment1过程,实现First Fit Algorithm
3、定义assignment2过程,实现Best Fit Algorithm
4、定义acceptment1过程,实现First Fit Algorithm的回收算法
5、定义acceptment2过程,实现Best Fit Algorithm的回收算法
6、定义print过程,打印空闲区队列
(三)执行
程序首先申请一整块空闲区,其首址为0,大小为32767;然后,提示用户使用哪种分配算法,
再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址和大小。
(四)输出
要求每执行一次,输出一次空闲区队列情况,内容包括:
编号 首址 终址 大小
注:输出空闲区队列的排序,应符合所用分配算法的要求。