对于物理内存的管理,你们觉得那个最重要?不少小伙伴会说,一定是物理页面分配。没错,一个系统里,操作系统就像皇帝,控制了所有的物理内存的资源的审批和分配,就像某国的房地产市场,地皮的流转是严格控制的。任何进程不管你是普通老百姓还是皇亲国戚,需要土地都需要找皇帝审批。那我们这期视频节目就带领带领大家去看看Linux内核里是如何管理和分配物理内存的。
本期视频的课程目标:
  1. 考察Linux内核婴儿底时期是如何分配物理页面的?
  2. 考察Linux内核儿童底时期是如何分配物理页面的?
  3. 考察当代Linux 4.0内核是如何分配物理页面的?
  4. 分配掩码是什么鬼?
  5. 页面分配时候是从哪些zone来分配?
  6. 页面分配的时候是沿着那个方向来扫描zone的?
  7. 怎么判断一个zone是否能胜任本次的页面分配任务?
预览片
笨叔制作了精彩的预览片,上传到腾讯视频。
本期视频全程约1小时,想观看完整视频或者更多视频的小伙伴,请订阅笨叔的旗舰篇视频!
https://shop115683645.taobao.com/
现在订阅在1月2号,还有机会赢取价值969元的国窖1573哟!
婴儿底
在神奇的中国大地,2018年有两个火热的单词:婴儿底和儿童底。婴儿底是说处于刚出生的婴儿时期,说明这时候很弱小,倒脏水的时候不要把幼小的婴儿倒掉,因为ta有价值。儿童底说明处于成长期,需要特别关心和照顾。
Linux内核不是一天练就的,从1991年出世,笨叔把0.11到1.0的内核定义为Linux内核婴儿底。我们首先考察一下Linux内核在婴儿底时期的情况。
儿童底
笨叔把Linux 1.0到Linux 2.0时期的Linux内核称为的儿童底,因为经过几年开发,Linux内核已经比较像模像样了,但还不够完善。
成人版
 笨叔把Linux 4.x内核定义为成人版,这时候的内核内核已经很成熟了,完全可以称霸和傲视整个操作系统领域,孤独求败。成人版的Linux内核的物理页面分配是相当的复杂,一般人不耐心去认真阅读内核代码是完全不能体会的。
成人版的Linux内核物理页面分配复杂在哪里?
  1. 你需要考虑不同进程不同用户的分配物理内存的需求,有的进程需要5分熟,有的需要7分熟,有的需要加胡椒粉,有的需要淡一点等等
  2. 你需要考虑从哪个zone来完成这次物理页面分配任务
  3. 你需要考虑不同内存节点
  4. 你需要考虑不同zone的扫描平衡和内存节点的平衡,她们都是怨妇
  5. 你需要考虑内存不足的时候,肿么办?
  6. 如果打死了也分配不出所需要的内存,肿么办?
  7. 如果有进程狂吃内存,肿么办?
想要了解更多的有趣和好玩的内容,请关注奔跑吧Linux社区。
课件ppt
[往期精彩]
继续阅读
阅读原文