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

关闭+畅/阅读=模式,看最新完整内容。本章未完,请点击下一页继续阅读》》
上一页 目录 下一页