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