分布式内存管理之结构图解
在看周伟明老师的《多核计算与程序设计》的时候,在分布式内存管理篇,有点迷茫。呵,艰苦地看完源码,整理一下笔记。以下是我对周老师思路的理解。
(1)进程内部结构
在分布式内存管理模块里,如何体现出内存的分布式管理呢?在我的理解里,分布式就是说每个线程对应着管理其局部的内存。好了,这个我们就很容易想到一个技术:线程本
地存储或者线程局部存储技术。这个技术的由来我就不多说了。我集中讲一下我对分布式内存管理的理解:当采用分布式分配内存时,当前线程分配一个线程局部存储指针并且
把它指向一个箱子(bin),同时把可用内存分成一块块32K的block,最后把箱子(bin)丢进BinQuere队列。箱子是什么呢?箱子有如何与内存块block关联呢?为何要把箱子丢进队列呢?
(2)箱子结构
以上我有了三点疑问。下面用一结构图来显示箱子的结构。
从上图,我们很容易看到箱子的结构。当然,我省了一下字段。每个箱子内部有19个FreeLists,每个FreeLists又管理这16个FreeList。每个FreeList对应着一块block。由此,我们可以知道,箱子最终的内存块来自于FreeList。