程序在向操作系统申请内存空间的时候,操作系统会扫描空闲块链表并从中取出一块足够大的分配,与之对应的算法有 首次适应 和 最佳适应,顾名思义,首次适应就是把首次遇到的足够大的空闲块分配给应用程序,最佳适应就是扫描完空闲块链表把大小与申请空间最匹配的空闲块分配给应用程序。
mem.h 程序用到的头文件
main.c 主函数
fit.c 具体的实现函数
这里使用make来编译使用,若是读者还没接触过make的,
================================================
mem.h
------------------------------------------------
#include
#include
//模拟空闲块链表的节点,其中k代表空闲空间大小
typedef struct po{
int k;
struct po *next;
}points;
void initalize(void);//初始化空闲块链表,给节点中代表空闲空间大小k赋值
void print(void); //打印空闲块链表
void fassign(void); //first_fit,首次适应