UCOS 實時多工作業系統

2021-08-29 08:00:33 字數 1329 閱讀 9366

ucosii 的前身是 ucos,最早出自於 1992 年美國嵌入式系統專家 jean j.labrosse 在《嵌

入式系統程式設計》雜誌的 5 月和 6 月刊上刊登的文章**,並把 ucos 的原始碼發布在該雜誌的

bbs 上。目前最新的版本:ucosiii 已經出來,但是現在使用最為廣泛的還是 ucosii,本章

我們主要針對 ucosii 進行介紹。

ucosii 是乙個可以基於 rom 執行的、可裁減的、搶占式、實時多工核心,具有高度可

移植性,特別適合於微處理器和控制器,是和很多商業作業系統效能相當的實時作業系統

(rtos)。為了提供最好的移植效能,ucosii 最大程度上使用 ansi c 語言進行開發,並且已

經移植到近 40 多種處理器體系上,涵蓋了從 8 位到 64 位各種 cpu(包括 dsp)。

ucosii 是專門為計算機的嵌入式應用設計的,絕大部分**是用 c 語言編寫的。cpu 硬

件相關部分是用組合語言編寫的、總量約 200 行的組合語言部分被壓縮到最低限度,為的是便

於移植到任何一種其它的 cpu 上。使用者只要有標準的 ansi 的 c 交叉編譯器,有彙編器、連

接器等軟體工具,就可以將 ucosii 嵌人到開發的產品中。ucosii 具有執行效率高、占用空間

小、實時效能優良和可擴充套件性強等特點, 最小核心可編譯至 2kb 。ucosii 已經移植到了幾

乎所有知名的 cpu 上。

uc/os-ii 中最多可以支援64 個任務,分別對應優先順序0~63,其中0 為最高優先順序。63為最低階,系統保留了4個最高優先順序的任務和4個最低優先順序的任務,所有使用者可以使用的任務數有56個。   uc/os-ii提供了任務管理的各種函式呼叫,包括建立任務,刪除任務,改變任務的優先順序,任務掛起和恢復等。   系統初始化時會自動產生兩個任務:乙個是空閒任務,它的優先順序最低,該任務僅給乙個整形變數做累加運算;另乙個是系統任務,它的優先順序為次低,該任務負責統計當前cpu的利用率。

uc/os-ii的時間管理是通過定時中斷來實現的,該定時中斷一般為10毫秒或100毫秒發生一次,時間頻率取決於使用者對硬體系統的定時器程式設計來實現。中斷發生的時間間隔是固定不變的,該中斷也成為乙個時鐘節拍。   uc/os-ii要求使用者在定時中斷的服務程式中,呼叫系統提供的與時鐘節拍相關的系統函式,例如中斷級的任務切換函式,系統時間函式。

uc/os-ii 採用的是可剝奪型實時多工核心。可剝奪型的實時核心在任何時候都執行就緒了的最高優先順序的任務。   uc/os-ii的任務排程是完全基於任務優先順序的搶占式排程,也就是最高優先順序的任務一旦處於就緒狀態,則立即搶占正在執行的低優先順序任務的處理器資源。為了簡化系統設計,uc/os-ii規定所有任務的優先順序不同,因為任務的優先順序也同時唯一標誌了該任務本身。

實時多工作業系統uCOS III的特點

ucos iii是乙個全新的實時核心,源於世界上最流行的實時核心uc os ii,除了提供熟悉的一系列系統服務,全面修訂了api介面,使uc os iii更直觀,更容易使用。該產品可以廣泛應用於通訊,工業控制,儀器儀表,汽車電子,消費電子,辦公自動化裝置等的設計開發。ucos iii是乙個搶占的多工...

多工作業系統

單使用者單任務作業系統是指一台計算機同時只能有乙個使用者在使用,該使用者一次只能提交乙個作業,乙個使用者獨自享用系統的全部硬體和軟體資源。多使用者與多工作業系統是指一台計算機可以同時有多個使用者同時使用,並且同時可以執行由多個使用者提交的多個任務。windows多工處理採用的是虛擬機器技術,為每乙個...

多工作業系統的任務切換

在學習os時,對於多工作業系統的任務切換,一直不能理解 控制權是怎麼麼回到排程程式上的?記得在描述任務切換時,一般都是這麼描述的 在每乙個時鐘滴答,都將檢查當前程序是否是乙個運 行超過100毫秒的使用者程序。如果是,則呼叫排程程式來檢視是否有另乙個使用者程序在等待cpu,我這裡舉個例子 我用 寫了乙...