嵌入式系統 實時作業系統 RTOS

2021-10-04 14:11:47 字數 2949 閱讀 4711

一、rtos中的基本概念 背景

rtos具有的功能

作業系統中的程序與執行緒

二、嵌入式作業系統的主要種類

1、uc/os-ii 

2、linux 作業系統

3、vxworks

4、 wince

os(作業系統,operating system),是嵌入式系統中的靈魂,是其軟體系統中的重要組成部分,嵌入式系統的智慧型化程度與其密不可分。

從嵌入式系統的應用領域來看,嵌入式作業系統可以分為實時作業系統(rtos)和非實時作業系統(nrtos)。

例如,用於航空航天的機載裝置,鑑於實時性要求非常嚴格,大都屬於實時作業系統(real time operatingsystem,即rtos)。

既然 rtos 對實時性有特別的要求,那怎麼保證其實時性?① 排程 一切可以利用的資源完成實時任務

② 著眼於提高計算機系統的使用效率,同時滿足對時間的限制和關鍵要求。

通過uc/os-ii 微核心、嵌入式 linux 核心,這兩種開源的嵌入式os,可以幫助我們理解和掌握嵌入式系統中rtos的基本原理和設計方法。

rtos具有的功能rtos具有的功能

描述1) 任務管理

包含多工和基於優先順序的任務排程

2) 任務間的同步和通訊

基於semaphore  、mailbox等

3) 優化的記憶體管理單元 (mmu)

負責處理**處理器(cpu)的記憶體訪問請求

4) 實時時鐘服務

用以設定相應的暫存器來控制實時時鐘的狀態

5) 中斷管理服務

處理器處理「急件」的服務

semaphore:訊號量 。又被稱為訊號燈,用訊號量進行通訊就像我們只撥通別人的手機而不與之通話。 

mailbox:郵箱。用郵箱進行通訊則可達到既撥通別人的手機又與之通話的效果。換句話說,訊息佇列和郵箱可以及時傳送事件的內容。

mmu:memory management unit

rtc:real time clock,可以。這些狀態包括使實時時鐘開始工作,也包括使實時時鐘停止工作。

rtos中,核心(kernel)是核心,其基本功能是多工的切換和排程。

1、程序和執行緒在執行上的區別

作業系統中的程序(process)和執行緒(thread)有本質性的區別,主要表現在使用計算機系統的資源上。

建立乙個程序與執行緒所使用計算機系統資源的區別 程序

位址空間、全域性變數、開啟檔案、子程序、建立訊號量(semaphore)、建立郵箱 (mailbox)等

執行緒只需要程式計數器(program counter-pc)、寄存 器(registers)、堆疊(stack)這三類資源

程序很常見,比如:乙個跑起來執行的c語言程式則成為程序(process),該程序只有乙個執行緒即單執行緒;而多執行緒機制中,就能在乙個程序中跑多個執行緒。如下圖,左圖表示有三個程序(process),每個程序中各有乙個執行緒; 而右圖則只有乙個程序(process),只不過在該程序中含有三個執行緒。

圖中,執行緒用線條表示,程序用圓圈表示。

2、程序與執行緒在實現上的區別比如乙個c語言實驗,為完成乙個任務需要 p1、p2、p3 三個程序,如下圖最常規的做法如下:

先做完 p1(實現 c1=a+b)-----> 再做 p2(實現 c2=a-b)----->最後再做 p3(實現 c3=a*b)。

需要注意的是:p1、p2、p3 不能同時執行,只有 p1 執行完後 p2 執行,最後 p3 執行, 可以理解它們是順序進行的。

而在 linux 和其他網路程式設計環境下,os(作業系統)提供了一種多執行緒的機制,pthread_create( )、pthread_join( )、pthread_exit( )函式分別提供多執行緒的建立、加入和退出功能(以linux為例), 從而實現多執行緒併發處理。

目前市場上的嵌入式作業系統有幾十種,中國近年出現了不少國產嵌入式作業系統,如 hopenos、deltaos 等。國際上嵌入式作業系統種類更多,除了最常用的 uc/os-ii、嵌入式 linux、 vxworks 和 wince 外,還包括 qnx、psos 等。

uc/os-ii ,乙個實時多工的微核心,為 jean j. labrosse 在 1992 年編寫的乙個開源**。由於核心小(僅由十幾個 c 語言和彙編檔案構成),應用範圍寬,目前可應用在許多任務業控制器、通訊裝置和交換機中。它既是實時多工的微核心,又是開源的**。

linux 作業系統,有強大的網路功能及其**的開源性, 但其核心具有不可剝奪特點,其實時性受到一定的限制。因此,為改善其實時性,人們提出了各種嵌入式 linux 作業系統,如:rt-linux、kurt-linux 和 red-linux。

vxworks,作為一種商用的嵌入式作業系統,具有優秀的實時性和穩定性,其**是不公開的, 而且**昂貴。vxworks 主要用於對實時性和穩定性有嚴格要求的航空航天專案中。

例如:美國 的 f16 戰鬥機,1997 年 4 月美國的火星表面登入的火星探路者上,用的均是 vxworks 嵌入式作業系統。

wince(window compact edition),由美國微軟公司設計的,也可用於手持裝置的作業系統中, 其主要特點是使用者介面非常漂亮,但由於其針對不同種類的手持裝置,導致生成的目標**「超長」(redundant codes)。

嵌入式 實時作業系統導論

排程任務和資料 訊號量和共享資料 可重入性和訊號量 多個訊號量 訊號量作為訊號裝置 使用訊號量的易出現問題 訊號量變數 所謂任務,是指在乙個rtos中所寫的軟體的基本構造塊,也就是通常所說的子程式。有關任務是如何呼叫 它與rots是如何配合工作的等問題稍後再討論。在rtos中乙個任務總是處在下列三種...

嵌入式實時作業系統的移植 !

所謂移植,就是使選用的實時核心能在某個特定的微處理器上執行。為了方便移植,大部分的實時作業系統 是用c語言編寫的,但仍需要用c和組合語言編寫一些與微處理器相關的 這是因為有一些操作只能通過組合語言來實現。由於所有的實時作業系統在設計時就已經充分考慮了可移植性,所以移植相對來說是比較容易的。以ucos...

實時作業系統 RTOS 和非實時作業系統

對於實時作業系統 rtos 和非實時作業系統,你能分別列舉出來多少?實時作業系統 ucos vxworks rtlinux 非實時作業系統 linux windows osx 我也只能列舉出來這麼多了。重點不在這裡,重點在於他們之間的區別,詳見下圖 在上面的圖中右邊的任務優先順序高於左邊的任務,先看...