作業系統的排程方法有很多種,這裡主要介紹主流的排程演算法,像edf這種排程演算法就不表述了。目前幾乎所有的商業實時作業系統的排程理論都基於rms理論.
以下是基於rms的一些假設理論:
1 各個任務之間沒有資源共享,沒有忙等,沒有mutex, 也沒有semaphore.
2 每個任務的最後期限是週期性的。
3 基於優先順序搶占的,即高優先順序任務一旦就緒的話,會立馬搶占低優先順序任務。
4 任務優先順序的分配原則是,週期越短的任務,優先順序越高。
5 任務切換以及純核心任務的消耗忽略不計對於這個理論模型。
以下的公式是,基於rms 的乙個基礎理論:
u 代表了系統的cpu 使用率,c 是任務的執行具體時間,t 是週期性的任務最後期限,n是有多少個任務,等式右邊是理論上的可實時排程率,可以看到可排程率只和任務的個數有關,任務越多,可實時排程率越少。
可以看到等式右邊:
可以看到當任務接近無窮大的時候,可排程率是69%了。從這個公式可以近似任務系統中69%的任務是可以實時排程的,即能在最後的期限中完成執行。還有大概31%的任務是非實時的。這樣的理論模型在實際應用中是完全可行的。
接下來看乙個實際的例子:
假設有3個任務p1, p2, p3,執行的時間以及週期如上圖。
根據公式可以算出系統的cpu 使用率。
理論上的可實時排程率為
可以看到0.725 <= 0.77976, 所以這3個任務都是可以實時排程的。
理解rms 的原理可能對基於實時作業系統的實戰有很大的幫助,讀者可以細細體會。
實時作業系統主流排程方法RMS
作業系統的排程方法有很多種,這裡主要介紹主流的排程演算法,像edf這種排程演算法就不表述了。目前幾乎所有的商業實時作業系統的排程理論都基於rms理論.以下是基於rms的一些假設理論 1 各個任務之間沒有資源共享,沒有忙等,沒有mutex,也沒有semaphore.2 每個任務的最後期限是週期性的。3...
ucosii實時作業系統的任務排程
嵌入式作業系統的任務排程演算法好壞在很大程度上決定了該系統的執行效率,由於其執行的頻率極高,所以在任務排程函式的實現上,對於效率的要求可以用苛刻來形容。基於優先順序的任務排程總結下來就是做了兩件事 1 找到優先順序最高的就緒態任務 2 切換任務上下文並開始執行該任務 第二步的切換上下文對個各個rto...
作業系統 任務排程方法
上次碰到js函式排程的問題,因為那時候不知道有event loop的概念 以為js中的函式也是搶占式的呼叫,然後又想起來上學期ucos中怪的碰撞檢測有問題的情況 所以翻了下作業系統的書 然而之前居然沒有翻到 再見再見 執行緒是最小的任務執行單位,乙個程序可以有多個執行緒。程序排程可以幫助計算機合理分...