UNIX再学习 -- 死磕内存管理

Posted 聚优致成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UNIX再学习 -- 死磕内存管理相关的知识,希望对你有一定的参考价值。

malloc/free简化实现;malloc 和 sbrk 关系;虚拟内存机制。 

一个内存管理 C 语言部分讲,UNIX部分讲,Linux部分还讲,死磕到底!!

一、mallc/free简化实现

上篇文章已经讲解了动态内存分配/释放函数,参看:UNIX再学习 – 内存管理 
下面来讲一下,它的自定义函数实现,其中有三个部分:

1、内存控制块

内存控制块用于管理每次分配的内存块,记录该内存块的字节大小、忙闲状态,以及相关内存控制块的首地址。

代码如下所示

typedef struct mem_control_block
{
    size_t size;  //本块大小
    bool free;  //空闲状态
    struct mem_control_block *next;  //后块指针
}MCB;
MCB *g_top = NULL;  //栈顶指针

以上是关于UNIX再学习 -- 死磕内存管理的主要内容,如果未能解决你的问题,请参考以下文章

玩命死磕Java内存模型(JMM)与Volatile关键字底层原理

[死磕 Spring 17/43] --- IOC 之从单例缓存中获取单例 bean

JVM内存区域划分及垃圾回收

死磕 Spring----- IOC 之从单例缓存中获取单例 bean

《Unix&Linux大学教程》学习笔记七:进程与作业控制

死磕 java线程系列之线程池深入解析——定时任务执行流程