操作系统 实验二:存储器的分配与回收算法实现 C语言实现

github代码自取采用最先适应法、最佳适应法、最坏适应法分配主存空间

#include <stdio.h>
#include <stdlib.h>

#define MAX_MEM_SIZE 1000

typedef struct FreeBlock
{
   
    int start;
    int size;
    struct FreeBlock *next;
} FreeBlock;

FreeBlock *free_list = NULL;

// 初始化空闲块链表
void init_free_list(int start, int size)
{
   
    FreeBlock *fb = malloc(sizeof(FreeBlock));
    fb->start = start;
    fb->size = size;
    fb->next = NULL;
    free_list = fb;
}

// 插入空闲块
void insert_free_block(FreeBlock *fb)
{
   
    FreeBlock *cur = free_list, *prev = NULL;
    while (cur != NULL && cur->start < fb->start)
    {
   
        prev = cur;
        cur = cur->next;
    }
    if (prev == NULL)
    {
   
        fb->next = free_list;
        free_list = fb;
    }
    else
    {
   
        prev->next = fb;
        fb->next = cur;
    }
}

// 删除空闲块
void delete_free_block(FreeBlock *fb)
{
   
    FreeBlock *cur = free_list, *prev = NULL;
    while (cur != NULL 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值