28

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

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI3NzA5MzUxNA%3D%3D&%3Bmid=2664607258&%3Bidx=1&%3Bsn=714519d05816b202d324433e9e837e92
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

微信公众号:奔跑吧Linux社区

欢迎订阅笨叔旗舰篇视频节目:https://weidian.com/?userid=1352872851

第二季更新视频啦

今天我们更新了两集第二季的视频节目,这两集视频节目都是和进程调度管理相关的代码分析视频,我们是基于Linux 5.0来讲解代码的哟,没错,我们视频是带领大家直接鲁5.0代码。 我们会在第一季+第二季旗舰篇视频里陆续更新Linux 5.0内核的代码分析视频,不见不散!

进程代码分析6 - 再谈SMP负载均衡

4维空间的角度来讲解进程的负载

上面这个视频只是我们这一期视频的一个预览片,全程1个多小时,有兴趣的小伙伴可以 点击阅读原文,进入笨叔微店订阅旗舰篇视频课程。 我们在上2个月和大家录制了两期的SMP负载均衡的代码分析视频,那我们这期节目还是继续和大家聊负载均衡,一方面是负载均衡 是进程管理里最复杂的模块,涉及的概念和代码量也比较多, 笨叔怕大家一时半会还没有完全理解,所以我们这期视频还是继续来聊负载均衡。

mu6RJzq.jpg!web

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

aAFfMrr.jpg!web

第二次smp负载均衡节目里,我们主要是讲 调度域和调度组的关系,这个也是很重要的,因为代码里如何去找一个空闲的CPU和一个繁忙的CPU,这不是乱找的,是有规律的,这个规律就是遵循调度域和调度组的层次结构来,我们稍后在和大家简单回顾一下。

我们来扯一下物理学的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内核在打开了内核抢占功能之后,要达到硬实时标准,还有什么坎?

我们在视频里详细分析,实时性有哪些延时?产生延时的可能的原因是什么?

v6niUvQ.jpg!web

欢迎订阅奔跑吧旗舰篇视频课程

笨叔会继续录制基于Linux 5.0的代码分析的视频课程,有兴趣的同学可以微店或者淘宝店订阅笨叔的第一季+第二季旗舰篇视频,旗舰篇视频是持续不断更新的!一次订阅,持续更新! 点击阅读原文,进入笨叔微店订阅旗舰篇视频课程。

蓝色奔跑吧第二版已经交稿

笨叔历时1年新修订的蓝色奔跑吧已经交稿,第二版会新增很多新内容,而且大部分内容是重新重构的,第二版完全基于Linux5.0 + ARM64/x86_64来编写的。书稿在3月初已经交稿,请大家耐心等待。想看Linux 5.0的代码讲解,可以订阅旗舰篇视频课程,笨叔会在视频里详细和大家分析5.0代码的实现。

  1. 第二版详细目录请登录“奔跑吧linux社区”微信公众号,输入“奔跑吧第二版”索取。

  2. 全新的一套奔跑卷题目,有兴趣同学可以登录“奔跑吧linux社区”微信公众号,输入“奔跑卷”索取。

本书预计2020年盛夏出版,到时候笨叔约大家吃西瓜,看奔跑吧!

eeQZBzz.jpg!web

VZZNjyV.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK