ucos-iii是乙個全新的實時核心,源於世界上最流行的實時核心uc/os-ii,除了提供熟悉的一系列系統服務,全面修訂了api介面,使uc/os-iii更直觀,更容易使用。該產品可以廣泛應用於通訊,工業控制,儀器儀表,汽車電子,消費電子,辦公自動化裝置等的設計開發。
ucos-iii是乙個搶占的多工核心,支援優先順序相同的任務輪詢排程。它可以移植到許多不同的cpu架構。uc/os-iii是專為嵌入式系統設計,可以與應用程式**一起固化到rom中。
ucos-iii可在執行時配置實時作業系統。所有核心物件,如任務,堆疊,訊號量,事件標誌組,訊息佇列,訊息數量,互斥訊號量,記憶體分割槽和定時器,由使用者在執行時進行分配。這可以防止在編譯的時候分配過多資源。
ucos-iii允許有任意數量的任務,訊號量,互斥訊號量,事件標誌,訊息佇列,定時器和記憶體分割槽(僅受限於處理器可用的ram大小)。
ucos-iii新增了許多非常有用的功能,如:可巢狀互斥訊號量,可巢狀任務暫停,不需要訊號量可發訊號給任務,不需要訊息佇列可傳送訊息給任務,等待多個核心物件,針對'errno'或其他任務的特定狀況的任務註冊,內建的效能測量,死鎖預防,使用者定義的鉤函式等。
ucos-iii還內建了支援核心感知除錯。允許核心感知偵錯程式以使用者友好的方式檢測和顯示uc/os-iii的變數和資料結構,也允許uc/probe在執行時顯示和改變變數。
μcos-iii是可以搶占的多工核心,始終執行進入就緒態的最重要的任務。μc/os-iii支援無限數量的任務,並允許在執行時,監測堆疊增長的任務。它還支援無限數量的優先順序。然而,通常情況下,對於大多數應用,32至256個不同的優先順序是足夠的。
對於今天的設計,特別有用的是具有同等優先順序的輪轉排程的任務。μc/os-iii允許多個任務執行在同一優先順序,每乙個任務執行由使用者指定的時間片。每個任務可以定義自己的時間單元,如果其完整的時間單元並不是必需的,每個任務可以放棄時間片。μc/os-iii還允許無限數量的核心物件,如任務,訊號量,互斥,訊號旗,訊息佇列,計時器和記憶體分割槽。μc/os-iii大部分是執行時可以配置。
μc/os-iii提供接近零的中斷停用時間。μc/os-iii有一些內部資料結構和變數,需要獲得原子訪問權(不能夠被打斷的)。這些關鍵區域的保護由鎖排程,而不是由禁用中斷實現。中斷被禁用的時鐘週期幾乎為零,確保了實時作業系統將能夠響應一些最快的中斷源。
允許任務使用同一優先順序。對同一優先順序的多個任務,採用時間片排程法。
可以有任意多的任務,任意多的訊號量(semaphore)、互斥型訊號量(mutex)、事件標誌(event flag)、訊息佇列(queue)、定時器(timer)和任意分配的儲存塊容量(僅受限於使用者 cpu 可以使用的 ram 量)
可巢狀的互斥型訊號量,可巢狀的任務掛起。
向無訊號量請求的任務傳送訊號量,向無訊息佇列請求的任務傳送訊息。
任務可被核心的多個元素掛起(多重掛起)。
增加為其他任務的狀態或「出錯**」服務的任務。
內在的效能測試。不僅能得到每個任務的最長關中斷時間和最長禁止排程時間,還能得到系統的最長關中斷時間和最長禁止排程時間。
選擇和確定優先順序的演算法可以用組合語言寫,以發揮一些有特殊指令的cpu的優勢,如:置位和復位指令;計數器清零(clz);找出第乙個不為零位(ff1)指令等。
訪問臨界資源的方法由關中斷改為給排程器上鎖的方式,使得核心關中斷的時鐘週期數幾乎為零,保證了 μc/os-iii 能以最快的速度響應中斷。
UCOS 實時多工作業系統
ucosii 的前身是 ucos,最早出自於 1992 年美國嵌入式系統專家 jean j.labrosse 在 嵌 入式系統程式設計 雜誌的 5 月和 6 月刊上刊登的文章 並把 ucos 的原始碼發布在該雜誌的 bbs 上。目前最新的版本 ucosiii 已經出來,但是現在使用最為廣泛的還是 u...
ucosii實時作業系統的任務排程
嵌入式作業系統的任務排程演算法好壞在很大程度上決定了該系統的執行效率,由於其執行的頻率極高,所以在任務排程函式的實現上,對於效率的要求可以用苛刻來形容。基於優先順序的任務排程總結下來就是做了兩件事 1 找到優先順序最高的就緒態任務 2 切換任務上下文並開始執行該任務 第二步的切換上下文對個各個rto...
多工作業系統
單使用者單任務作業系統是指一台計算機同時只能有乙個使用者在使用,該使用者一次只能提交乙個作業,乙個使用者獨自享用系統的全部硬體和軟體資源。多使用者與多工作業系統是指一台計算機可以同時有多個使用者同時使用,並且同時可以執行由多個使用者提交的多個任務。windows多工處理採用的是虛擬機器技術,為每乙個...