ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

内存回收相关内核基础概念——MIGRATE_TYPE

内存回收相关内核基础概念——MIGRATE_TYPE 一、背景内存回收是一个非常大的话题,可以认为是内存管理的高级课题。虽然内存回收的主体逻辑并不是那么复杂,但是具体代码实现里涉及到大量的与内存管理相关基础概念有关的非常多的细节逻辑,这些细节逻辑有些就相当复杂,有些也并没有什么很好的资料可以查阅,有些知识点甚至在某些网上查阅的资料里的解释还是错的。本文算是内存回收相关主题里的基础概念篇里的第一个部分,讲的是MIGRATE_TYPE里的类型,这些类型其实从字面意思上来说都感觉上很好理解,但是如果不结合实际实验,真正在问到一些细节时,你又不能确保地回答上来,所以需要实验的配合,另外,实验也能便于大家记忆概念。下面大部分的实验项为自行编写,不少理论概念在经过阅读多份资料和代码求证以及反复思考之后进行了总结。二、内存管理从大到小的全局的概念内存管理从大到小的概念:node:一般系统都是1个node,服务器可能会有多个node,cpu和内存如果属于不同的node访问内存的访问效率会低于node内的cpu的内存访问,一般cpu按照不同的node分开去访问不同node内的内存zone:目前的x64系统,默认是一个node里有DMA/DMA32/NORMAL这三个zonefree_area:一个zone里按照order去管理空闲页migrate_type:migrate_type是已经确定了上述的这些,比如,node已经确定是nodeA,zone也已经确定是zoneNORMAL,free_area是哪一个也已经确定比如是order 3,这些都已经确定的情况下,才去分不同的migratetype。一般系统上分为MIGRATE_MOVABLE/MIGRATE_UNMOVAB
返回列表