99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式實時操作系統(tǒng):RTOS和PC上的區(qū)別

h1654155971.7688 ? 來源:未知 ? 作者:李倩 ? 2018-04-09 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式實時系統(tǒng)中采用的操作系統(tǒng)我們稱為嵌入式實時操作系統(tǒng),它既是嵌入式操作系統(tǒng),又是實時操作系統(tǒng)。作為一種嵌入式操作系統(tǒng),它具有嵌入式軟件共有的可裁剪、低資源占用、低功耗等特點;而作為一種實時操作系統(tǒng)(本文對實時操作系統(tǒng)特性的討論僅限于強實時操作系統(tǒng),下面提到的實時操作系統(tǒng)也均指強實時操作系統(tǒng)),它與通用操作系統(tǒng)(如Windows、Unix、Linux等)相比有很大的差別,下面我們將通過比較這兩種操作系統(tǒng)之間的差別來逐步描述實時操作系統(tǒng)的主要特點。我們在日常工作學習環(huán)境中接觸最多的是通用操作系統(tǒng),通用操作系統(tǒng)是由分時操作系統(tǒng)發(fā)展而來,大部分都支持多用戶和多進程,負責管理眾多的進程并為它們分配系統(tǒng)資源。分時操作系統(tǒng)的基本設計原則是:盡量縮短系統(tǒng)的平均響應時間并提高系統(tǒng)的吞吐率,在單位時間內(nèi)為盡可能多的用戶請求提供服務。由此可以看出,分時操作系統(tǒng)注重平均表現(xiàn)性能,不注重個體表現(xiàn)性能。如對于整個系統(tǒng)來說,注重所有任務的平均響應時間而不關心單個任務的響應時間,對于某個單個任務來說,注重每次執(zhí)行的平均響應時間而不關心某次特定執(zhí)行的響應時間。通用操作系統(tǒng)中采用的很多策略和技巧都體現(xiàn)出了這種設計原則,如虛存管理機制中由于采用了LRU等頁替換算法,使得大部分的訪存需求能夠快速地通過物理內(nèi)存完成,只有很小一部分的訪存需求需要通過調(diào)頁完成,但從總體上來看,平均訪存時間與不采用虛存技術相比沒有很大的提高,同時又獲得了虛空間可以遠大于物理內(nèi)存容量等好處,因此虛存技術在通用操作系統(tǒng)中得到了十分廣泛的應用。類似的例子還有很多,如Unix文件系統(tǒng)中文件存放位置的間接索引查詢機制等,甚至硬件設計中的Cache技術以及CPU的動態(tài)分支預測技術等也都體現(xiàn)出了這種設計原則。由此可見,這種注重平均表現(xiàn),即統(tǒng)計型表現(xiàn)特性的設計原則的影響是十分深遠的。



而對于實時操作系統(tǒng),前面我們已經(jīng)提到,它除了要滿足應用的功能需求以外,更重要的是還要滿足應用提出的實時性要求,而組成一個應用的眾多實時任務對于實時性的要求是各不相同的,此外實時任務之間可能還會有一些復雜的關聯(lián)和同步關系,如執(zhí)行順序限制、共享資源的互斥訪問要求等,這就為系統(tǒng)實時性的保證帶來了很大的困難。因此,實時操作系統(tǒng)所遵循的最重要的設計原則是:采用各種算法和策略,始終保證系統(tǒng)行為的可預測性(predictability)??深A測性是指在系統(tǒng)運行的任何時刻,在任何情況下,實時操作系統(tǒng)的資源調(diào)配策略都能為爭奪資源(包括CPU、內(nèi)存、網(wǎng)絡帶寬等)的多個實時任務合理地分配資源,使每個實時任務的實時性要求都能得到滿足。與通用操作系統(tǒng)不同,實時操作系統(tǒng)注重的不是系統(tǒng)的平均表現(xiàn),而是要求每個實時任務在最壞情況下都要滿足其實時性要求,也就是說,實時操作系統(tǒng)注重的是個體表現(xiàn),更準確地講是個體最壞情況表現(xiàn)。舉例來說,如果實時操作系統(tǒng)采用標準的虛存技術,則一個實時任務執(zhí)行的最壞情況是每次訪存都需要調(diào)頁,如此累計起來的該任務在最壞情況下的運行時間是不可預測的,因此該任務的實時性無法得到保證。從而可以看出在通用操作系統(tǒng)中廣泛采用的虛存技術在實時操作系統(tǒng)中不宜直接采用。由于實時操作系統(tǒng)與通用操作系統(tǒng)的基本設計原則差別很大,因此在很多資源調(diào)度策略的選擇上以及操作系統(tǒng)實現(xiàn)的方法上兩者都具有較大的差異,這些差異主要體現(xiàn)在以下幾點:

(1) 任務調(diào)度策略:

通用操作系統(tǒng)中的任務調(diào)度策略一般采用基于優(yōu)先級的搶先式調(diào)度策略,對于優(yōu)先級相同的進程則采用時間片輪轉(zhuǎn)調(diào)度方式,用戶進程可以通過系統(tǒng)調(diào)用動態(tài)地調(diào)整自己的優(yōu)先級,操作系統(tǒng)也可根據(jù)情況調(diào)整某些進程的優(yōu)先級。實時操作系統(tǒng)中的任務調(diào)度策略目前使用最廣泛的主要可分為兩種,一種是靜態(tài)表驅(qū)動方式,另一種是固定優(yōu)先級搶先式調(diào)度方式。靜態(tài)表驅(qū)動方式是指在系統(tǒng)運行前工程師根據(jù)各任務的實時要求用手工的方式或在輔助工具的幫助下生成一張任務的運行時間表,這張時間表與列車的運行時刻表類似,指明了各任務的起始運行時間以及運行長度,運行時間表一旦生成就不再變化了,在運行時調(diào)度器只需根據(jù)這張表在指定的時刻啟動相應的任務即可。靜態(tài)表驅(qū)動方式的主要優(yōu)點是:

運行時間表是在系統(tǒng)運行前生成的,因此可以采用較復雜的搜索算法找到較優(yōu)的調(diào)度方案;運行時調(diào)度器開銷較?。?/p>

系統(tǒng)具有非常好的可預測性,實時性驗證也比較方便;

這種方式主要缺點是不靈活,需求一旦發(fā)生變化,就要重新生成整個運行時間表。由于具有非常好的可預測性,這種方式主要用于航空航天、軍事等對系統(tǒng)的實時性要求十分嚴格的領域。固定優(yōu)先級搶先式調(diào)度方式則與通用操作系統(tǒng)中采用的基于優(yōu)先級的調(diào)度方式基本類似,但在固定優(yōu)先級搶先式調(diào)度方式中,進程的優(yōu)先級是固定不變的,并且該優(yōu)先級是在運行前通過某種優(yōu)先級分配策略(如Rate-Monotonic、Deadline-Monotonic等)來指定的。這種方式的優(yōu)缺點與靜態(tài)表驅(qū)動方式的優(yōu)缺點正好完全相反,它主要應用于一些較簡單、較獨立的嵌入式系統(tǒng),但隨著調(diào)度理論的不斷成熟和完善,這種方式也會逐漸在一些對實時性要求十分嚴格的領域中得到應用。目前市場上大部分的實時操作系統(tǒng)采用的都是這種調(diào)度方式。

(2) 內(nèi)存管理:

關于虛存管理機制我們在上面已經(jīng)進行了一些討論。為解決虛存給系統(tǒng)帶來的不可預測性,實時操作系統(tǒng)一般采用如下兩種方式:

在原有虛存管理機制的基礎上增加頁面鎖功能,用戶可將關鍵頁面鎖定在內(nèi)存中,從而不會被swap程序?qū)⒃擁撁娼粨Q出內(nèi)存。這種方式的優(yōu)點是既得到了虛存管理機制為軟件開發(fā)帶來的好處,又提高了系統(tǒng)的可預測性。缺點是由于TLB等機制的設計也是按照注重平均表現(xiàn)的原則進行的,因此系統(tǒng)的可預測性并不能完全得到保障;

采用靜態(tài)內(nèi)存劃分的方式,為每個實時任務劃分固定的內(nèi)存區(qū)域。這種方式的優(yōu)點是系統(tǒng)具有較好的可預測性,缺點是靈活性不夠好,任務對存儲器的需求一旦有變化就需要重新對內(nèi)存進行劃分,此外虛存管理機制所帶來的好處也喪失了。

目前市場上的實時操作系統(tǒng)一般都采用第一種管理方式。

(3) 中斷處理:

在通用操作系統(tǒng)中,大部分外部中斷都是開啟的,中斷處理一般由設備驅(qū)動程序來完成。由于通用操作系統(tǒng)中的用戶進程一般都沒有實時性要求,而中斷處理程序直接跟硬件設備交互,可能有實時性要求,因此中斷處理程序的優(yōu)先級被設定為高于任何用戶進程。但對于實時操作系統(tǒng)采用上述的中斷處理機制是不合適的。首先,外部中斷是環(huán)境向?qū)崟r操作系統(tǒng)進行的輸入,它的頻度是與環(huán)境變化的速率相關的,而與實時操作系統(tǒng)無關。如果外部中斷產(chǎn)生的頻度不可預測,則一個實時任務在運行時被中斷處理程序阻塞的時間開銷也是不可預測的,從而使任務的實時性得不到保證;如果外部中斷產(chǎn)生的頻度是可預測的,一旦某外部中斷產(chǎn)生的頻度超出其預測值(如硬件故障產(chǎn)生的虛假中斷信號或預測值本身有誤)就可能會破壞整個系統(tǒng)的可預測性。其次,實時操作系統(tǒng)中的各用戶進程一般都有實時性要求,因此中斷處理程序優(yōu)先級高于所有用戶進程的優(yōu)先級分配方式是不合適的。一種較適合實時操作系統(tǒng)的中斷處理方式為:除時鐘中斷外,屏蔽所有其它中斷,中斷處理程序變?yōu)橹芷谛缘妮喸儾僮?,這些操作由核心態(tài)的設備驅(qū)動程序或由用戶態(tài)的設備支持庫來完成。采用這種方式的主要好處是充分保證了系統(tǒng)的可預測性,主要缺點是對環(huán)境變化的響應可能不如上述中斷處理方式快,另外輪詢操作在一定程度上降低了CPU的有效利用率。另一種可行的方式是:對于采用輪詢方式無法滿足需求的外部事件,采用中斷方式,其它時間仍然采用輪詢方式。但此時中斷處理程序與所以其它任務一樣擁有優(yōu)先級,調(diào)度器根據(jù)優(yōu)先級對處于就緒態(tài)的任務和中斷處理程序統(tǒng)一進行處理器調(diào)度。這種方式使外部事件的響應速度加快,并避免了上述中斷方式帶來第二個問題,但第一個問題仍然存在。此外為提高時鐘中斷響應時間的可預測性,實時操作系統(tǒng)應盡可能少地屏蔽中斷。

(4) 共享資源的互斥訪問:

通用操作系統(tǒng)一般采用信號量機制來解決共享資源的互斥訪問問題。對于實時操作系統(tǒng),如果任務調(diào)度采用靜態(tài)表驅(qū)動方式,共享資源的互斥訪問問題在生成運行時間表時已經(jīng)考慮到了,在運行時無需再考慮。如果任務調(diào)度采用基于優(yōu)先級的方式,則傳統(tǒng)的信號量機制在系統(tǒng)運行時很容易造成優(yōu)先級倒置問題(PriorityInversion),即當一個高優(yōu)先級任務通過信號量機制訪問共享資源時,該信號量已被一低優(yōu)先級任務占有,而這個低優(yōu)先級任務在訪問共享資源時可能又被其它一些中等優(yōu)先級的任務搶先,因此造成高優(yōu)先級任務被許多具有較低優(yōu)先級的任務阻塞,實時性難以得到保證。因此在實時操作系統(tǒng)中,往往對傳統(tǒng)的信號量機制進行了一些擴展,引入了如優(yōu)先級繼承協(xié)議(PriorityInheritanceProtocol)、優(yōu)先級頂置協(xié)議(PriorityCeilingProtocol)以及StackResourcePolicy等機制,較好地解決了優(yōu)先級倒置的問題。

(5) 系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時間開銷:

進程通過系統(tǒng)調(diào)用得到操作系統(tǒng)提供的服務,操作系統(tǒng)通過內(nèi)部操作(如上下文切換等)來完成一些內(nèi)部管理工作。為保證系統(tǒng)的可預測性,實時操作系統(tǒng)中的所有系統(tǒng)調(diào)用以及系統(tǒng)內(nèi)部操作的時間開銷都應是有界的,并且該界限是一個具體的量化數(shù)值。而在通用操作系統(tǒng)中對這些時間開銷則未做如此限制。

(6) 系統(tǒng)的可重入性:

在通用操作系統(tǒng)中,核心態(tài)系統(tǒng)調(diào)用往往是不可重入的,當一低優(yōu)先級任務調(diào)用核心態(tài)系統(tǒng)調(diào)用時,在該時間段內(nèi)到達的高優(yōu)先級任務必須等到低優(yōu)先級的系統(tǒng)調(diào)用完成才能獲得CPU,這就降低了系統(tǒng)的可預測性。因此,實時操作系統(tǒng)中的核心態(tài)系統(tǒng)調(diào)用往往設計為可重入的。

(7) 輔助工具:

實時操作系統(tǒng)額外提供了一些輔助工具,如實時任務在最壞情況下的執(zhí)行時間估算工具、系統(tǒng)的實時性驗證工具等,可幫助工程師進行系統(tǒng)的實時性驗證工作。此外,實時操作系統(tǒng)對系統(tǒng)硬件設計也提出了一些要求,其中一些要求為:(1) DMADMA是一種數(shù)據(jù)交換協(xié)議,主要作用是在無需CPU參與的情況下將數(shù)據(jù)在內(nèi)存與其它外部設備間進行交換。DMA最常用的一種實現(xiàn)方式被稱為周期竊取(CycleStealing)方式,即首先通過總線仲裁協(xié)議與CPU競爭總線控制權(quán),在獲得控制權(quán)后再根據(jù)用戶預設的操作指令進行數(shù)據(jù)交換。由于這種周期竊取方式會給用戶任務帶來不可預測的額外阻塞開銷,所以實時操作系統(tǒng)往往要求系統(tǒng)設計時不采用DMA或采取一些可預測性更好的DMA實現(xiàn)方式,如Time-slicemethod等。(2)CacheCache的主要作用是采用容量相對較小的快速存儲部件來彌補高性能CPU與相對來說性能較低的存儲器之間的性能差異,由于它可以使系統(tǒng)的平均表現(xiàn)性能得到大幅提高,因此在硬件設計中得到了極為廣泛的應用。但實時操作系統(tǒng)注重的不是平均表現(xiàn)性能,而是個體最壞情況表現(xiàn),因此在對系統(tǒng)進行實時性驗證時必須考慮實時任務運行的最壞情況,即每次訪存都沒有命中Cache情況下的運行時間,所以在利用輔助工具估算實時任務在最壞情況下的執(zhí)行時間時,應將系統(tǒng)中所有的Cache功能暫時關閉,在系統(tǒng)實際運行時再將Cache功能激活。除此以外,另一種較極端的做法則是在硬件設計中完全不采用Cache技術。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5149

    文章

    19659

    瀏覽量

    317348
  • RTOS
    +關注

    關注

    24

    文章

    851

    瀏覽量

    121144
  • 嵌入式實時操作系統(tǒng)

    關注

    1

    文章

    128

    瀏覽量

    8103

原文標題:都叫操作系統(tǒng) RTOS和PC上的到底有啥不同?

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網(wǎng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【安富萊】【RTX操作系統(tǒng)教程】第2章 嵌入式實時操作系統(tǒng)介紹

    一樣都是出自Segger公司。2.1.4STM32嵌入式實時操作系統(tǒng)解決方案 ST公司有一個手冊是專門講嵌入式解決方案的,這里就把RTOS
    發(fā)表于 01-15 15:35

    嵌入式操作系統(tǒng)的FreeRTOS操作系統(tǒng)分析

    嵌入式領域中,嵌入式實時操作系統(tǒng)正得到越來越廣泛的應用。采用嵌入式實時
    發(fā)表于 07-01 08:19

    嵌入式實時操作系統(tǒng)Small RTOS51怎么樣?

    ,重點介紹了適合于小RAM單片機的嵌入式實時操作系統(tǒng)Small RTOS51,以及基于8位單片機的硬件和軟件的設計方法和過程。
    發(fā)表于 11-07 07:42

    嵌入式實時操作系統(tǒng)如何簡化應用軟件的設計

    嵌入式領域中,嵌入式實時操作系統(tǒng)RTOS)正得到越來越廣泛的應用。采用嵌入式
    發(fā)表于 11-25 06:48

    嵌入式實時操作系統(tǒng)RTOS

    前言自20世紀90年代,鑒于多任務支持、開發(fā)便捷、便于維護等特性,同時能夠提高系統(tǒng)的穩(wěn)定性和可靠性,嵌入式實時操作系統(tǒng)RTOS)逐漸為廣大
    發(fā)表于 08-05 06:14

    怎樣去更好地使用嵌入式實時操作系統(tǒng)RTOS

    為什么嵌入式實時操作系統(tǒng)RTOS會被廣泛使用?怎樣去更好地使用嵌入式實時
    發(fā)表于 11-02 06:41

    嵌入式實時操作系統(tǒng)rtems的特點是什么

    嵌入式實時操作系統(tǒng)rtems的特點及研究現(xiàn)狀RTEMS簡介1RTEMS是一個開源的無版稅實時嵌入操作系統(tǒng)
    發(fā)表于 12-14 07:12

    嵌入式實時操作系統(tǒng)FreeRTOS基本概述

    嵌入式實時操作系統(tǒng)FreeRTOS基本概述在嵌入式領域當中,實時操作系統(tǒng)的應用越來越廣泛了,目前
    發(fā)表于 02-16 07:12

    嵌入式實時操作系統(tǒng)教程

    嵌入式實時操作系統(tǒng)教程:以VRTX為對象詳細介紹了嵌入式實時操作系統(tǒng)的原理和應用,特別是第一部分
    發(fā)表于 04-19 21:55 ?44次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>教程

    嵌入式實時操作系統(tǒng)設計方案

    本文提出了一種航空電子嵌入式實時操作系統(tǒng)(A-RTOS,Avionics RTOS)的一種設計思路,并在具有MMU和支持高級保護模式的目標板
    發(fā)表于 11-21 11:43 ?1316次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>設計方案

    不同的實時嵌入式Linux操作系統(tǒng)有什么差異

    嵌入式實時操作系統(tǒng)(Embedded Real-time Operation System,RTOS)。嵌入式
    發(fā)表于 11-06 11:36 ?1506次閱讀

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7移植實現(xiàn)

    嵌入式實時操作系統(tǒng)FreeRTOS在ARM7移植實現(xiàn)(嵌入式開發(fā)工程師待遇)-嵌入式
    發(fā)表于 07-30 12:05 ?21次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>FreeRTOS在ARM7<b class='flag-5'>上</b>移植實現(xiàn)

    詳解目前主流的嵌入式操作系統(tǒng)RTOS操作系統(tǒng)

    滿足實時控制要求的嵌入式操作系統(tǒng)RTOS操作系統(tǒng),以下介紹14種主流的RTOS,分別為μCl
    發(fā)表于 10-20 12:36 ?16次下載
    詳解目前主流的<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>(<b class='flag-5'>RTOS</b>)<b class='flag-5'>操作系統(tǒng)</b>

    嵌入式實時操作系統(tǒng)

    14 種主流的嵌入式實時操作系統(tǒng) RTOS,分別為μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,而國產(chǎn)的
    發(fā)表于 10-20 14:05 ?17次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>

    再談嵌入式實時操作系統(tǒng)

    等領域。嵌入式實時操作系統(tǒng)RTOS)構(gòu)造簡單、功能齊全、便于使用,特別適合各類應用場景,因此它在軟件應用程序開發(fā)中發(fā)揮著重要的作用,使嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?1176次閱讀
    再談<b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統(tǒng)</b>