從Linux的進程調度機制中想到的

Linux持續維護相關的數據結構(諸如runqueueprio_array),不斷更新進程的動態優先級,並相應的調整時間片,從而實現了O(1)複雜度的進程調度算法,可以在常量時間內調度新進程上臺運行,而不受系統中進程總數的影響。

我覺得這至少能佐證三個道理:

1)效益可以來自於平時點點滴滴地積累(功夫都在平時,而並非只針對schedule()函數本身做天才的設計);

2)維持秩序固然需要成本,卻可以帶來可觀的收益(如果不是一直維護着井然有序的隊列,進程調度算法的複雜度恐怕很難優於O(N));

3)世上沒有免費的午餐(O(1)複雜度不是0成本的),但不斷努力,不斷積累就可能吃到實惠的午餐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章