他拿起粉笔,在黑板上,画了两个小人,A和B。
“现在,我们改变规则!”
“我们不再给每个任务,一个固定的‘时间片’。”
“我们给每个任务,一个固定的‘总预算’!比如说,也是10毫秒!”
“这个‘总预算’,包含了它的‘工作时间’,和它上一次的‘通勤时间’!”
他在黑板上写下了一个公式:
工作时间 = 总预算 - 上下文切换开销
“每一次,当内核准备调度一个新任务时,它首先,要‘测量’出,这一次上下文切换,到底花了多少时间。”
“比如,这一次切换,花了73微秒。那么,内核就从10000微秒的总预算里,减去73微秒。”
“然后,它告诉即将运行的任务:‘你的工作时间,不是10000微秒了,而是9927微秒!’”
“内核会设置一个新的,更短的定时器中断。时间一到,就立刻剥夺它的权力!”
“这样一来!”
黄建功的声音,陡然拔高,充满了难以抑制的兴奋。
“无论每个任务的‘通勤成本’是多少,或高或低,我们都从它的总预算里,精确地扣除!”
“最终,保证了每一个任务,真正拿在手里的,纯粹的‘CPU工作时间’,是绝对公平的!”
“我们,用软件的‘精算’,抹平了硬件的‘不公’!”
“轰——”
当黄建功阐述完这个天才般的构想时。
整个实验室,先是死一般的寂静。
随即,所有人都像看妖怪一样,看着黄建功。
他们的脸上,写满了震撼,不解,以及……狂热的崇拜!
这个思路,太……太不可思议了!
它完全跳出了之前“消除抖动”的思维定式。
它承认了物理世界的不完美,然后用一种更加高维的,充满了数学和控制论思想的智慧,在软件层面,重建了一个完美的,公平的虚拟世界!
这已经不是简单的编程了。
这是在制定法则!
这是在扮演上帝!
“我的天……”孙立国张大了嘴巴,喃喃自语,“动态调整时间片……这……这简直是神来之笔!”
“用软件的确定性,去对抗硬件的随机性……”钱学敏