分析Linux内存管理那些事儿
内存管理是Linux内核中非常重要的部分,今天和大家一起学习一下。 当我们要学习一个新知识点时,比较好的过程是先理解出现这个技术点的 背景原因,同期其他解决方案,新技术点解决了什么问题以及它存在哪些不足和改进之处,这样整个学习过程是 闭环 的,个人觉得这是个很好的学习思路。 凡事都是相通的,计算机学科的一些问题在现实生活中都可以找到原型,所以我觉得计算机科学家大部分都是善于观察生活并总结归纳的。人类社会就是一台复杂的机器,其中充满了机制和规则,所以有时候跳进代码海洋不如先回到生活之中,寻找原型再探究代码,可能理解会更深刻。 linux内存管理卷帙浩繁,本文只能层层递进地带你领略冰山轮廓,通过本文你将了解到以下内容: 为什么需要管理内存 linux段页管理机制 内存碎片的产生机理 伙伴系统的基本原理 伙伴系统的优势和不足 slab分配器的基本原理 2 为什么需要管理内存 老子的著名观点是无为而治,简单说就是不过多干预而充分依靠自觉就可以有条不紊地运作,理想是美好的,现实是残酷的。 在linux系统中如果以一种原始简单的方式管理内存是存在一些问题的,我们来看几个场景。 2.1 内存管理的问题 进程空间隔离问题 假如现在有ABC三个进程运行在linux的内存空间,设定os给进程A分配的地址空间是0-20M 进程B地址空间30-80M,进程C地址空间90-120M,如图: (编辑:宜春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |