第684章 时间的成本!

作品:《四合院开局四八,八岁带妹逃荒

    “我们必须,消除这种‘抖动’!”


    黄建功的声音,斩钉截铁。


    他不能容忍,他们亲手创造的这个“天枢”内核,带着这样一枚如同定时炸弹般的瑕疵,走出实验室。


    一个不可靠的,不精确的操作系统,比没有操作系统,更加危险!


    “怎么消除?”一个年轻的研究员,满脸困惑地问道,“上下文切换的开销,是物理存在的。我们总不能让CPU在切换任务的时候,不保存寄存器吧?”


    “是啊,而且这个开销,还是动态变化的。我们怎么可能把它变成一个恒定的值?”


    实验室里,刚刚才平息下去的紧张气氛,再次弥漫开来。


    这个问题,比之前遇到的任何一个,都更加底层,更加棘手。


    它触及到了软件与硬件交互的,最核心的区域。


    众人议论纷纷,提出了各种各样的想法。


    “我们能不能,从软件层面,去优化上下文切换的代码?把每一条指令都抠到极致,让它的执行时间,尽可能的短?”


    “可以,但最多只能缩小开销,无法让它‘恒定’。只要任务的复杂性不同,开销就必然不同。”


    “那……我们能不能,反过来,从硬件层面想办法?让‘盘古之心’增加一些专门用于快速保存和恢复现场的硬件指令?”


    这个想法,立刻被周老否决了。


    “不行!修改CPU的指令集,等于要重新设计整个CPU!这个工程量,比我们现在做的所有工作加起来,还要大十倍!我们等不起!”


    所有的路,似乎都被堵死了。


    他们好像面对着一个物理规律上的,无解的难题。


    黄建功在黑板前,烦躁地来回踱步。


    他的大脑,在飞速地运转。


    消除“抖动”……


    让切换开销“恒定”……


    做不到。


    既然做不到,那我们……能不能换一个思路?


    他的脚步,猛地一顿。


    一道全新的,甚至有些离经叛道的闪电,划过了他的脑海。


    “如果……”


    他缓缓地转过身,目光扫过每一个愁眉不展的专家。


    “如果我们,承认这个‘成本’的存在呢?我们不试图去消除它,而是……去‘管理’它?”


    “管理成本?”钱学敏的眼睛,瞬间亮了。


    “对!”黄建功的思路,越来越清晰,他的语速也越来越快。


    “我们为什么会觉得‘不公平’?是因为我们只给了每个任务10毫秒的‘工作时间’,却没有把它们的‘通勤时间’,算进去!”


    他拿起粉笔,在黑板上,画了两个小人,A和B。


    “现在,我们改变规则!”


    “我们不再给每个任务,一个固定的‘时间片’。”


    “我们给每个任务,一个固定的‘总预算’!比如说,也是10毫秒!”


    “这个‘总预算’,包含了它的‘工作时间’,和它上一次的‘通勤时间’!”


    他在黑板上写下了一个公式:


    工作时间 = 总预算 - 上下文切换开销


    “每一次,当内核准备调度一个新任务时,它首先,要‘测量’出,这一次上下文切换,到底花了多少时间。”


    “比如,这一次切换,花了73微秒。那么,内核就从10000微秒的总预算里,减去73微秒。”


    “然后,它告诉即将运行的任务:‘你的工作时间,不是10000微秒了,而是9927微秒!’”


    “内核会设置一个新的,更短的定时器中断。时间一到,就立刻剥夺它的权力!”


    “这样一来!”


    黄建功的声音,陡然拔高,充满了难以抑制的兴奋。


    “无论每个任务的‘通勤成本’是多少,或高或低,我们都从它的总预算里,精确地扣除!”


    “最终,保证了每一个任务,真正拿在手里的,纯粹的‘CPU工作时间’,是绝对公平的!”


    “我们,用软件的‘精算’,抹平了硬件的‘不公’!”


    “轰——”


    当黄建功阐述完这个天才般的构想时。


    整个实验室,先是死一般的寂静。


    随即,所有人都像看妖怪一样,看着黄建功。


    他们的脸上,写满了震撼,不解,以及……狂热的崇拜!


    这个思路,太……太不可思议了!


    它完全跳出了之前“消除抖动”的思维定式。


    它承认了物理世界的不完美,然后用一种更加高维的,充满了数学和控制论思想的智慧,在软件层面,重建了一个完美的,公平的虚拟世界!


    这已经不是简单的编程了。


    这是在制定法则!


    这是在扮演上帝!


    “我的天……”孙立国张大了嘴巴,喃喃自语,“动态调整时间片……这……这简直是神来之笔!”


    “用软件的确定性,去对抗硬件的随机性……”钱学敏也在低声重复着这句话,她的眼中,异彩连连,闪烁着棋逢对手的,极致的兴奋。


    这个构想,彻底打开了她脑中的一扇新的大门。


    然而,兴奋过后,一个新的,更加现实的问题,摆在了所有人面前。


    钱学敏抬起头,看着黄建功,她的表情,前所未有的严肃。


    “建功,这个想法很伟大。”


    “但是,它也带来了一个巨大的难题。”


    “我们……要如何‘测量’那个上下文切换的开销?”


    “CPU内部,并没有一个现成的秒表,可以让我们去掐算这个时间。”


    “我们要如何,在微秒级别,去精确地度量……时间的成本?”