1. 程式人生 > >uC/OS—lI的任務排程原理

uC/OS—lI的任務排程原理

參考文獻《嵌入式實時系統I-IC/OS—lI的任務排程原理》 崔志明,崔志能

寫的很明白。下面是簡單的總結。

一個任務,也稱做一個執行緒,是一個簡單的程式。每個任務都是整個應用的某一部分,每個任務被賦予一定的優先順序,有它自己的一套CPU暫存器和自己的棧空間。
一般來說。任務通常是一個無限的迴圈。uC/OS—II的任務擁有自己的程式碼和堆疊空
間(儲存該任務的暫存器、返回地址和臨時引數),一般都是空函式,不會返回任何值。任務執行一次後,設定延時引數OSTCBDly。表明在經過OSTCBDly個時鐘週期後再次執行.然後任務進行切換.使其他任務執行。

uC/OS—II下的任務有五種狀態:睡眠態、就緒態、執行態、等待狀態、中斷服務態。排程也就是決定該輪到哪個任務運行了,從而使一就緒的任務切換到執行態.這是核心的主要職責之一。uc/OS一Ⅱ是基於優先順序排程演算法的:也就是說,總是讓處於就緒態、優先順序最高的任務執行。uc/OS—II是通過查表法找到準備就緒的優先順序最高的任務。