<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 您何時(shí)需要實(shí)時(shí)操作系統?

您何時(shí)需要實(shí)時(shí)操作系統?

作者: 時(shí)間:2012-12-21 來(lái)源:電子產(chǎn)品世界 收藏

  擴展實(shí)時(shí)操作系統以針對應用開(kāi)發(fā)的需求

本文引用地址:http://dyxdggzs.com/article/140324.htm

  盡管使用通用操作系統在確定性環(huán)境中有缺陷,但使用它們還是有一些優(yōu)點(diǎn)的。這些優(yōu)點(diǎn)就包括支持廣泛使用的API,以L(fǎng)inux為例,其開(kāi)源的模型。開(kāi)源使得開(kāi)發(fā)人員能夠根據應用需求來(lái)定義操作系統的組件,在解決問(wèn)題時(shí)也能節省大量的時(shí)間。實(shí)時(shí)操作系統廠(chǎng)商不能不重視這點(diǎn)。所以對POSIX API(Linux以及各種類(lèi)Unix系統使用的相同的API)的支持就是重要的第一步。因此要提供文檔清晰的源代碼和定制工具使得能夠滿(mǎn)足開(kāi)發(fā)人員的需求和設計挑戰。

  實(shí)時(shí)操作系統的架構也發(fā)揮了重要作用。例如,與使用其他系統架構相比,基于微內核設計的實(shí)時(shí)操作系統能從根本上簡(jiǎn)化操作系統的定制過(guò)程。在微內核實(shí)時(shí)操作系統中,只有少數核心基本對象(如信號、計時(shí)器、調度程序)才會(huì )存在于內核中。所有其他組件——設備驅動(dòng)程序、文件系統、協(xié)議棧、用戶(hù)應用程序,都會(huì )作為單獨、內存受保護的進(jìn)程在內核外部運行(參見(jiàn)圖 5)。因此,開(kāi)發(fā)定制的驅動(dòng)程序和應用程序特定的操作系統擴展組件不需要專(zhuān)門(mén)的內核調試工具或內核專(zhuān)家。實(shí)際上,作為用戶(hù)空間程序,開(kāi)發(fā)這種操作系統擴展組件和開(kāi)發(fā)標準應用程序一樣容易,因為開(kāi)發(fā)人員都能使用標準、源代碼級工具和技術(shù)對它們進(jìn)行調試。

  例如,如果設備驅動(dòng)程序試圖訪(fǎng)問(wèn)其進(jìn)程空間之外的內存,操作系統就能識別相關(guān)進(jìn)程,指出故障位置并創(chuàng )建可使用源代碼級調試工具查看的進(jìn)程轉儲文件。轉儲文件可包括調試程序確定導致故障的源代碼行所需的所有信息以及診斷信息(如數據項的內容和函數調用的歷史)。

  這種架構還提供了絕佳的故障隔離和恢復功能:如果驅動(dòng)程序、協(xié)議?;蚱渌到y服務(wù)出現故障,它可在不影響其他服務(wù)或或損壞操作系統內核的情況下完成這種操作。實(shí)際上,“軟件監視程序”會(huì )持續監測此類(lèi)事件,并能以動(dòng)態(tài)方式重啟出現故障的服務(wù),無(wú)需重啟整個(gè)系統或以任何方式干擾用戶(hù)。同樣,驅動(dòng)程序和其他服務(wù)都能以動(dòng)態(tài)方式停止、啟動(dòng)或升級,無(wú)需關(guān)閉系統?! ?/p>


圖 5. 在微內核實(shí)時(shí)操作系統中,系統服務(wù)作為標準的用戶(hù)空間進(jìn)程運行,
因而簡(jiǎn)化了操作系統的定制任務(wù)。

  絕不可小看這些優(yōu)勢——因為破壞實(shí)時(shí)性能的最大威脅就是不定期的系統重啟!甚至軟件更新中包含的以可控制的方式進(jìn)行的預定重啟都會(huì )干擾系統運行。為保證一直滿(mǎn)足最后期限的要求,軟件開(kāi)發(fā)人員必須使用即使在出現軟件故障或進(jìn)行服務(wù)升級時(shí),也能保持連續可用的操作系統。

  戰略決策

  實(shí)時(shí)操作系統能使復雜的應用程序變得可預測而且可靠;實(shí)際上,實(shí)時(shí)操作系統實(shí)現的精確時(shí)間控制,就是通用操作系統無(wú)法提供的可靠功能。(如果基于通用操作系統的系統由于計時(shí)錯誤而無(wú)法正常運行,我們可以合理認為該系統不可靠。)選擇正確的實(shí)時(shí)操作系統本身仍然是一項復雜的任務(wù)。實(shí)時(shí)操作系統的底層架構是重要標準,而其他因素也不例外。具體包括:

  • 調度算法的靈活選擇——實(shí)時(shí)操作系統支持調度算法選擇(先入先出 [FIFO] 調度、循環(huán)調度、偶發(fā)調度等)嗎?開(kāi)發(fā)人員能根據每個(gè)線(xiàn)程分配這些算法嗎?或者實(shí)時(shí)操作系統要求他針對系統中的所有線(xiàn)程分配一種算法嗎?
  • 時(shí)間分區——實(shí)時(shí)操作系統支持能為進(jìn)程提供有保證的 周期預算的時(shí)間分區嗎?這種保證簡(jiǎn)化了對多個(gè)開(kāi)發(fā)團隊或供應商的子系統進(jìn)行集成的工作。它們還能確保關(guān)鍵任務(wù)在系統遭到拒絕服務(wù) (DoS) 攻擊和其他惡意攻擊時(shí),保持可用并滿(mǎn)足其最后期限的要求。
  • 支持多核處理器——向多核處理器遷移的功能已成為各種高性能設計的基本要求。實(shí)時(shí)操作系統是否支持多重處理模式(對稱(chēng)多重處理、不對稱(chēng)多重處理、混合多重處理)的選擇,并幫助開(kāi)發(fā)人員最大限度地利用多核硬件?允許開(kāi)發(fā)人員診斷和優(yōu)化多核系統性能的系統跟蹤工具支持實(shí)時(shí)操作系統嗎?如果沒(méi)有能顯示資源競爭、線(xiàn)程的過(guò)度遷移和其他多核設計常見(jiàn)問(wèn)題的工具,那么對多核系統進(jìn)行優(yōu)化就會(huì )變得異常麻煩和費時(shí)。
  • 遠程診斷工具——由于許多系統都不允許有故障時(shí)間,因此實(shí)時(shí)操作系統的供應商應提供能在不中斷系統服務(wù)的情況下分析系統運行的診斷工具。尋找能提供運行分析工具(用于系統剖析、應用程序剖析和內存分析的)的供應商。
  • 開(kāi)放的開(kāi)發(fā)平臺——實(shí)時(shí)操作系統供應商能否提供基于開(kāi)放平臺(如 Eclipse)的開(kāi)發(fā)環(huán)境,允許開(kāi)發(fā)人員“插入”他們最喜歡的第三方工具以便進(jìn)行建模、版本控制等工作?或者,開(kāi)發(fā)環(huán)境是基于專(zhuān)有技術(shù)的嗎?
  • 圖形用戶(hù)界面——實(shí)時(shí)操作系統使用基元圖形庫嗎?或者它提供了高級圖形處理功能(如多層界面、基于 Flash 的人機界面、多目標顯示、3D 加速渲染和真正的窗口系統)嗎?開(kāi)發(fā)人員能輕松地自定義圖形用戶(hù)界面的視覺(jué)效果嗎?圖形用戶(hù)界面能同時(shí)顯示和輸入多種語(yǔ)言(中文、朝鮮語(yǔ)、日語(yǔ)、英語(yǔ)、俄語(yǔ)等)嗎?2D(如 Flash)和 3D(如 OpenGL ES)應用程序能輕松共享同一屏幕嗎?
  • 標準應用程序接口——實(shí)時(shí)操作系統限制開(kāi)發(fā)人員使用專(zhuān)有應用程序接口嗎?或者它提供了對標準應用程序接口(如 POSIX 和 OpenGL ES)的認證支持,使各種運行環(huán)境之間的代碼移植變得更容易?實(shí)時(shí)操作系統還提供對應用程序接口的綜合支持嗎?還是只支持一小部分已定義接口的子集?
  • 源代碼——實(shí)時(shí)操作系統供應商允許開(kāi)發(fā)人員輕松訪(fǎng)問(wèn)源代碼以簡(jiǎn)化調試過(guò)程,并幫助他們根據項目的具體需求定制實(shí)時(shí)操作系統服務(wù)嗎?
  • 面向數字媒體的中間件——對數字媒體的靈活支持已成為各種系統(如車(chē)載收音機、醫療設備、工業(yè)控制系統、媒體服務(wù)器以及消費電子產(chǎn)品)的設計要求。系統可能需要處理多種媒體資源(如 USB 閃存、MP3 播放器、網(wǎng)絡(luò )流媒體、藍牙電話(huà)等),分辨多種數據格式(如 MP3、WMA、AAC、MPEG-2、MPEG-4 等)并支持各種數字版權管理 (DRM) 方案。通過(guò)為數字媒體提供設計精密的中間件,實(shí)時(shí)操作系統供應商能避免連接多媒體資源、組織數據以及初始化適當的數據處理路徑所需的大量軟件工作。另外,設計完善的中間件解決方案還能靈活支持新的數據源(如下一代 iPod),無(wú)需修改用戶(hù)界面或其他軟件組件。

  選擇實(shí)時(shí)操作系統是項目團隊的戰略性決策。如果實(shí)時(shí)系統供應商針對以上問(wèn)題給出了清楚的答案,那么您離現在和將來(lái)選擇到完全適用的實(shí)時(shí)操作系統又近了一步。

  [1] Michael Barr“優(yōu)先級反轉簡(jiǎn)介”《嵌入式系統編程》(Embedded Systems Programming),第 15 卷:2002 年 4 月第 4 版。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: QNX 嵌入式 CPU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>