1. 程式人生 > >powerpc_011_簡單的任務排程的優化改進

powerpc_011_簡單的任務排程的優化改進

       下面是之前實現的一個簡單的任務排程的相關程式碼:

       其實,簡單的排程倒是不會有什麼大的問題。不過,一個很大的問題點是10ms、20ms、100ms在執行的時間點上會有重合。如果能夠做到更好的排程,應把它們拆開更加合理一點。這種拆分,依然使用10ms的時基進行拆分能夠有一點改進,但是更好的方式應該是把時基拆分的更小,而每個任務排程的時間上限應該也增加相應的限制。這樣,能夠實現一個更加合理的死排程。

       接下來,做個簡單的拆分:

       這樣的改進其實很小,但是已經把20ms和100ms的排程重合點給打散了。如果要進一步優化,除了上面說的繼續減小時基之外,應該把類似20ms這樣的任務拆成更多個,例如上面的例子中可以把每個case都拆分成一個20ms的task,而每個task都要增加相應的執行時間限制。這樣,整個任務呼叫散開之後,程式能夠充分利用每一箇中斷產生的時間片,增加CPU的利用率。

       其實,說到了這裡,進一步的優化方案又可以初見端倪了。接下來可以嘗試進一步的修改改進。