FF,NF,BF
设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。
对分区的管理法可以是下面三种算法之一:
首次适应算法
循环首次适应算法
最佳适应算法
对于测试样例 :
首地址 大小
123 3
125 2
213 4
作业名 大小
1 3
2 3
3 1
从123开始查找,其大小满足作业1的需求,因此直接分配,开始作业2,再从头开始,123已经不能再分配,查找125,125由于被占用了1个地址单元,可以利用的只有1个地址单元,继续寻找,213满足,分配,开始作业3,此时125刚好满足,只不过地址是从126开始的。
代码:
#include <iostream> #include <cstring> #define Max_num 10 #define Max_job_num 10 using namespace std; struct partition { int address; int size; bool state; partition& operator = (partition& B) { this->address = B.address; this->size = B.size; this->state = B.state; return *this; } }; typedef struct { string name; int size; } job; typedef struct { partition data[100]; } Singlypartition; typedef struct { job data[100]; } Singlyjob; Singlypartition p; Singlyjob j; int part_num,job_num; int address[10]; int address1[10]; void init() { for(