實時控制軟體設計第三週作業 1

2022-08-15 14:30:16 字數 3045 閱讀 6883

vxworks

vxworks作業系統是美國windriver公司於2023年設計開發的一種嵌入式實時作業系統(rtos),是嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高效能的核心以及友好的使用者開發環境,在嵌入式實時作業系統領域佔據一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應用在通訊、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。

核心:

l  多任務排程(採用基於優先順序搶占方式,同時支援同優先順序任務間的分時間片排程)

l  任務間的同步

l  程序間通訊機制

l  中斷處理

l  定時器和記憶體管理機制

i/o系統:

vxworks 提供了乙個快速靈活的與 ansi c 相容的 i/o 系統,包括 unix 標準以及posix 標準的非同步 i/o。vxworks 包括以下驅動程式:網路驅動、管道驅動、ram盤驅動、scsi驅動、鍵盤驅動、顯示驅動、磁碟驅動、並口驅動等 。

檔案系統:

支援四種檔案系統:dosfs,rt11fs,rawfs 和 tapefs;支援在乙個單獨的 vxworks 系統上同時並存幾個不同的檔案系統。

板級支援包

板級支援包向vxworks作業系統提供了對各種板子的硬體功能操作的統一的軟體介面,它是保證vxworks作業系統可移植性的關鍵,它包括硬體初始化、中斷的產生和處理、硬體時鐘和計時器管理、局域和匯流排記憶體位址對映、記憶體分配等等。每個板級支援包包括乙個 rom 啟動(boot rom)或其它啟動機制。

網路支援:

它提供了對其它vxworks系統和tcp/ip網路系統的"透明"訪問,包括與bsd套接字相容的程式設計介面,遠端過程呼叫(rpc),snmp(可選項),遠端檔案訪問(包括客戶端和服務端的nfs機制以及使用rsh,ftp 或 tftp的非nfs機制)以及bootp 和**arp、dhcp、dns、ospf、rip。無論是松耦合的序列線路、標準的乙太網連線還是緊耦合的利用共享記憶體的背板匯流排,所有的 vxworks 網路機制都遵循標準的 internet 協議。

qnx

qnx是一種商用的遵從posix規範的類unix實時作業系統,目標市場主要是面向嵌入式系統。它可能是最成功的微核心作業系統之一。是乙個分布式、嵌入式、可規模擴充套件的硬實時作業系統。它遵循posⅸ.1 (程式介面)和posⅸ.2 (shell和工具)、部分遵循posⅸ.1b(實時擴充套件)。其核心僅提供4種服務:程序排程、程序間通訊、底層網路通訊和中斷處理,其程序在獨立的位址空間執行。所有其它os服務,都實現為協作的使用者程序,因此qnx核心非常小巧(qnx4.x大約為12kb)而且執行速度極快

qnx 提供posⅸ.1b標準程序排程:具有255個程序優先順序;支援搶占式的、基於優先順序的正文切換;可選排程策略:fifo、輪轉策略、適應性策略。

它具有獨一無二的微核心實時平台,建立在微核心和完全位址空間保護基礎之上,實時、穩定、可靠,已經完成到powerpc、mips、arm等核心的移植,成為在國內廣泛應用的嵌入式實時作業系統。雖然qnx本身並不屬於unix,但由於其提供了posix的支援,使得多數傳統unix程式在微量修改(甚至不需修改)後即可在qnx上面編譯與執行。

qnx的微核心結構,核心獨立自處於乙個被保護的位址空間;驅動程式、網路協議和應用程式處於程式空間中。

qnx網路子系統由三個部分組成:網路管理模組(io-net)、網路協議模組、網路裝置驅動模組。

qnx的網路子系統也在核心外部空間執行。應用程式面對的是乙個統一的網路介面,硬體相關的內容被完全包裝在網路子系統內。

qnx網路子系統的三個子模組按層次分開,io-net模組處於中心,是qnx網路的核心和重點,其它模組都掛接在它上面。資料和資訊的流動都必須經由io-net排程與**,所有其它模組所面對的就是乙個單一主體。這樣的中心交換結構,遮蔽了各個模組間相互協調的複雜細節,在很大程式上方便了模組的編寫工作;同時,io-net還是qnx的網路管理中心。任何網路協議和網路裝置驅動程式都必須向io-net註冊,由它來載入,並接受io-net的配置和管理,使用者對網路狀態的查詢和管理也是通過io-net來實現的。

xenomai:

xenomai是一種採用雙核心機制的linux 核心的強實時擴充套件。優先順序高於linux 核心,它負責處理系統的實時任務。xenomai 是一種採用雙核心機制的linux 核心的強實時擴充套件。由於linux 核心本身的實現方式和複雜度,使得linux 本身不能使用于強實時應用。在雙核心技術下,存在乙個支援強實時的微核心,它與linux 核心共同執行於硬體平台上,實時核心的,優先順序高於linux 核心,它負責處理系統的實時任務,而linux 則負責處理非實時任務,只有當實時核心不再有實時任務需要處理的時候,linux 核心才能得到執行的機會。

xenomai 基於adeos(adaptive domain environment for operating system)實現雙核心機制。

intime

intime是與 windows 作業系統共享硬體平台的實時作業系統。intime 核心提供的標準 api 提供了適合於同步和通訊的物件,以及在程序之間(包括 intime 和 windows 程序之間)共享記憶體的手段。所有物件都通過控制代碼引用,並且所有控制代碼對於實時系統都是全域性的。intime 應用程式環境被設計為具有下列功能:

l  每個程序都是其他物件(包括執行緒和物理記憶體)的容器。由該程序所屬執行緒建立的每個物件都由該程序所有,並且在程序終止時不再存在。

l  每個程序都具有乙個與其他程序的位址空間隔離的平面虛擬位址空間。程序中的**以使用者模式(ia 許可權等級 3)執行,從而防止意外訪問系統物件和資料。

l  每個程序都可以直接訪問處理器的輸入/輸出 (i/o) 空間,而且可以直接訪問物在任何程序中,都可以通過系統呼叫以及使用者為中斷處理程式和執行緒編寫的**來直接處理中斷。

l  錯誤是按程序分別處理的。預設情況下會掛起出錯的執行緒,並且向全域性郵箱中寫入乙個記錄。可以更改預設操作,以便能夠在出錯位址進入靜態系統偵錯程式或應用程式偵錯程式。程序還可以選擇獲得有關該程序中錯誤的通知。

《實時控制軟體設計》第三週作業

閱讀作業 快速通讀 構建之法 現代軟體工程 全書,列出幾條問題項,發表在個人部落格上,如 git github實踐作業 把上述操作過程記錄在個人部落格上,至少截一張最後的log顯示的圖。在個人的github上進行一次fork操作,把感興趣的 庫fork到個人賬號,預設可選擇 在個人github帳號下...

《實時控制軟體設計》期末作業

1 每個團隊的pm在github.com rtcsd2016下建立本團隊的專案repository,把團隊成員新增進去。2 在repository的根目錄下建立readme.md文件用於簡述團隊組成和團隊開發目標,在專案完成後新增關於軟體編譯和執行的簡要說明。也可新增todo.md用於介紹團隊近期的...

第三週作業

實驗作業 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係...