调度算法与时间管理

 新闻资讯     |      2018-09-07 10:46:58

最近,我看了一篇文章,是讲时间管理的,但视角很奇特,引入了计算机系统的调度算法,文中举了一个著名的例子,1997年夏天,当NASA兴奋地将价值一亿五千万美元的探路者号送上火星时,却发现它居然出现了拖延症。它对于优先度最高的任务不闻不问,却把时间都花在那些中等优先度的任务上。当时的科研人员经过数日研究,最终发现了元凶,那就是调度中的大敌人——优先级倒置。文中用了一长段的专业文字来叙述其原理,我使用生活中的例子来说明一下,比如周六早上八点之前我必须送儿子到辅导班,而送儿子就得开车,开车就得加油,而加油对我来说不是必须马上去办的事情,但却因为没有及时加油,却影响到一开始预定的比较重要的事。回到前文,科研人员发现问题所在之后,写了一段代码,发给火星上的探路者号,使用优先级继承的方法,即跟优先度最高的相关任务都设置为优先度最高,这样就解决了问题。回到生活中,也是如此,跟重要的事情相关的事情,同等重要,好比我们准备一场培训,准备PPT及培训内容重要,但预约培训教室、投影仪,并确保所用的电脑设备都是好的,这些都同等重要。也就不会因为准备工作没做好,影响最终培训的结果了。

文章中还提到了一个多任务处理的问题,我们知道现在的计算机都能够进行多任务处理,但有时也会出现任务过多时,系统卡顿甚至崩溃的情形,这时候,对计算机硬件进行硬件升级,一般就可以解决问题,可对人脑来说,我们不可能进行升级,只能考虑使用更为科学合理的方法,去统筹安排(调度)多任务情况下的时间。要做到这一点就得对任务进行评估,分成紧急重要、紧急不重要,重要不紧急、不重要不紧急,并评估完成任务需要的时间,也不要试图在短时间内完成多个任务,而应该对任务进行分类,在一段时间内完成一类任务,避免在多个任务中来会切换,造成时间都浪费在切换任务的过程中。

最后要说的是,调度算法是人类赋予计算机根据任务等级分配资源的一种程序,程序一旦设定,计算机只会遵守,而人们在进行多任务处理时,调度算法给我们的是规则上的借鉴,最终如何去完成任务,还是需要我们的主观能动性,去实现时间的最优分配。

(调度中心  邱石磊)