最近,我看了一篇文章,是講時間管理的,但視角很奇特,引入了計算機系統(tǒng)的調度算法,文中舉了一個著名的例子,1997年夏天,當NASA興奮地將價值一億五千萬美元的探路者號送上火星時,卻發(fā)現(xiàn)它居然出現(xiàn)了拖延癥。它對于優(yōu)先度最高的任務不聞不問,卻把時間都花在那些中等優(yōu)先度的任務上。當時的科研人員經過數(shù)日研究,最終發(fā)現(xiàn)了元兇,那就是調度中的大敵人——優(yōu)先級倒置。文中用了一長段的專業(yè)文字來敘述其原理,我使用生活中的例子來說明一下,比如周六早上八點之前我必須送兒子到輔導班,而送兒子就得開車,開車就得加油,而加油對我來說不是必須馬上去辦的事情,但卻因為沒有及時加油,卻影響到一開始預定的比較重要的事;氐角拔模蒲腥藛T發(fā)現(xiàn)問題所在之后,寫了一段代碼,發(fā)給火星上的探路者號,使用優(yōu)先級繼承的方法,即跟優(yōu)先度最高的相關任務都設置為優(yōu)先度最高,這樣就解決了問題;氐缴钪,也是如此,跟重要的事情相關的事情,同等重要,好比我們準備一場培訓,準備PPT及培訓內容重要,但預約培訓教室、投影儀,并確保所用的電腦設備都是好的,這些都同等重要。也就不會因為準備工作沒做好,影響最終培訓的結果了。
文章中還提到了一個多任務處理的問題,我們知道現(xiàn)在的計算機都能夠進行多任務處理,但有時也會出現(xiàn)任務過多時,系統(tǒng)卡頓甚至崩潰的情形,這時候,對計算機硬件進行硬件升級,一般就可以解決問題,可對人腦來說,我們不可能進行升級,只能考慮使用更為科學合理的方法,去統(tǒng)籌安排(調度)多任務情況下的時間。要做到這一點就得對任務進行評估,分成緊急重要、緊急不重要,重要不緊急、不重要不緊急,并評估完成任務需要的時間,也不要試圖在短時間內完成多個任務,而應該對任務進行分類,在一段時間內完成一類任務,避免在多個任務中來會切換,造成時間都浪費在切換任務的過程中。
最后要說的是,調度算法是人類賦予計算機根據任務等級分配資源的一種程序,程序一旦設定,計算機只會遵守,而人們在進行多任務處理時,調度算法給我們的是規(guī)則上的借鑒,最終如何去完成任務,還是需要我們的主觀能動性,去實現(xiàn)時間的最優(yōu)分配。
(調度中心 邱石磊)