笨叔(用4维空间来理解进程负载)

微信公众号:奔跑吧Linux社区
欢迎订阅笨叔旗舰篇视频节目:https://weidian.com/?userid=1...
第二季更新视频啦
今天我们更新了两集第二季的视频节目,这两集视频节目都是和进程调度管理相关的代码分析视频,我们是基于Linux 5.0来讲解代码的哟,没错,我们视频是带领大家直接鲁5.0代码。我们会在第一季+第二季旗舰篇视频里陆续更新Linux 5.0内核的代码分析视频,不见不散!
进程代码分析6 - 再谈SMP负载均衡
用4维空间的角度来讲解进程的负载
上面这个视频只是我们这一期视频的一个预览片,全程1个多小时,有兴趣的小伙伴可以点击阅读原文,进入笨叔微店订阅旗舰篇视频课程。我们在上2个月和大家录制了两期的SMP负载均衡的代码分析视频,那我们这期节目还是继续和大家聊负载均衡,一方面是负载均衡 是进程管理里最复杂的模块,涉及的概念和代码量也比较多,笨叔怕大家一时半会还没有完全理解,所以我们这期视频还是继续来聊负载均衡。
笨叔(用4维空间来理解进程负载)
文章图片

我们在第一次smp负载均衡节目里,主要是和大家聊负载是怎么计算的,这个很重要,里面涉及到很多公式和概念。这一期视频节目没看明白,后面的代码看起来也是非常费劲的。那我呢,在最近奔跑吧第二版修订过程中,对一些概念,重新做了一些修订,所以,这期视频,我会更新一下我们最近对负载计算的思考,和我自己定义的一些新概念,不过,公式啥的,基本上都没变化,只是概念做了一些优化,主要是 怎么用中文,更好的抽象和理解这些 公式和代码,我们会4维空间的角度来讲解负载这个概念。
笨叔(用4维空间来理解进程负载)
文章图片

第二次smp负载均衡节目里,我们主要是讲 调度域和调度组的关系,这个也是很重要的,因为代码里如何去找一个空闲的CPU和一个繁忙的CPU,这不是乱找的,是有规律的,这个规律就是遵循调度域和调度组的层次结构来,我们稍后在和大家简单回顾一下。
【笨叔(用4维空间来理解进程负载)】我们来扯一下物理学的4维空间。我们知道0维空间是点,一维空间是直线,两个点连起来就是一根直线。两条平行的线是不会相交的。两条不平行的线,他们有可能会在某个点相交。如果一个生命是在一条直线上,那么它就无法和另外一条平行的直线上的生命相遇。那什么是二维空间呢,二维空间是几根线连起来的面,二维空间只有长和宽。而三维空间是啥呢,把平面卷起来,形成了一个三维的空间。三维空间是有长宽高,从而形成一个三维的,立体的空间。所以,三维空间可以理解为有无数的平面组成。比如,一个最强大脑里 经常经常玩的魔方,它就有好几个面组成了一个正方体。
那什么是4维空间,它们在时间这个维度由很多的三维空间组成,所以4维空间多了时间这个概念。我们生活的4维空间是由无数个静止的三维空间 连续地,动态地,变化而成构成的。我们就生活在这个动态的三维空间里。如果我们把 时间用微观来看,你可以把它看成是由无数个微观的三维空间组成的一个时间轴。其实,我们人啊,是生活的4维空间里,你能看到三维的空间,你能感受到时间的一分一秒的变化。我们在时间轴是连续地匀速的变化,它不能加速,不能减速,不能静止,我们人类无法控制这条时间线。
还有的人说,人是生活在5维空间里,当人离开了地球,就去了五维空间了。
其实,我们生活很多东西都是4维空间的,比如说,100块钱的一张纸币,它是一个静态的东西,你可以把它看成是一个3维空间里面的一个物体,它是静止的。但是呢,如果我们把时间考虑进去,10年后,这个100块的购买力 就不是100块了,现在100块,你可能可以买30斤大米,3块3一斤大米,10年后可能只能买10斤大米了,这就是4维空间。它随着时间的变化而变化的。扯蛋扯远了。我们回到刚才的问题,我们发现直接使用权重,没有考虑4维空间的影响,它只是停留在3维空间里,那当然是不准了,我们现实生活是4维空间,必须把第4维空间,时间这个因素考虑进去。
Linux内核里使用了decay_avg_load的计算公式,为什么这里要使用decay这个东西呢?decay这个单词是衰减的意思。我们还是从4维空间的角度来看。一个能量在时间轴里,它是会慢慢衰减的。比如我们发出的声音,它就会随着时间慢慢衰减,在几十米的地方基本上听不见了。在举个例子,刚才提到的人民币购买力的情况,其实也是经济学上一种衰减,这个随着时间的衰减是符合经济规律的。比如,10几年前,上海一套房子单价才3~4千一平方米,现在基本上要涨到5~6,7~8w一平方米了,这说明同样的一百块钱 随着时间推移,购买力的下降,这叫做通货膨胀。很多人在通过买房子或者投资股票来抵抗通胀。很多人觉得一线城市的房子可以抵抗通胀,但是很难理解股票为什么能抵抗通胀,其实道理很简单,一个国家的GDP是由这个国家所有的公司来贡献的,那么那些好公司的业绩一定是优于整个国家的GDP,GDP其实是一个平均值,所有公司的平均值。比如我们现在GDP增长6~7%,那些头部的优质公司,它们的年增长率一定大于6~7%,对吧。我们在股市大跌或者低迷的时候,买入头部优质的公司长期持有,它们的业绩增长一定是远远大于GDP,也大于M2的速度,这样就可以达到抵抗通胀的目的,很多人没有把这个简单的4维空间的道理想明白,而是盯着k线图这个二维空间的图形来研究股市,然后想着今天买明天卖,那当然是被割韭菜了。
进程代码导读7 - 实时性介绍和分析
很多人可能对实时性的概念有点模糊,什么是实时性?实时性是不是就是让系统跑的更快的意思?是不是跑分更多?什么是硬实时?什么是软实时?
Linux内核在打开了内核抢占功能之后,要达到硬实时标准,还有什么坎?
我们在视频里详细分析,实时性有哪些延时?产生延时的可能的原因是什么?
笨叔(用4维空间来理解进程负载)
文章图片

欢迎订阅奔跑吧旗舰篇视频课程
笨叔会继续录制基于Linux 5.0的代码分析的视频课程,有兴趣的同学可以微店或者淘宝店订阅笨叔的第一季+第二季旗舰篇视频,旗舰篇视频是持续不断更新的!一次订阅,持续更新!点击阅读原文,进入笨叔微店订阅旗舰篇视频课程。
蓝色奔跑吧第二版已经交稿
笨叔历时1年新修订的蓝色奔跑吧已经交稿,第二版会新增很多新内容,而且大部分内容是重新重构的,第二版完全基于Linux5.0 + ARM64/x86_64来编写的。书稿在3月初已经交稿,请大家耐心等待。想看Linux 5.0的代码讲解,可以订阅旗舰篇视频课程,笨叔会在视频里详细和大家分析5.0代码的实现。
第二版详细目录请登录“奔跑吧linux社区”微信公众号,输入“奔跑吧第二版”索取。
全新的一套奔跑卷题目,有兴趣同学可以登录“奔跑吧linux社区”微信公众号,输入“奔跑卷”索取。
本书预计2020年盛夏出版,到时候笨叔约大家吃西瓜,看奔跑吧!
笨叔(用4维空间来理解进程负载)
文章图片

笨叔(用4维空间来理解进程负载)
文章图片

    推荐阅读