<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

          【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

          作者: 時間:2015-07-02 來源:網(wǎng)絡(luò) 收藏

            本節(jié)我們將從實時來講解,主要是從下面3個方面進行講解:

          本文引用地址:http://www.ex-cimer.com/article/276732.htm

            1.的分類

            2.實時

            3.實時操作系統(tǒng)的基本概念

            一、操作系統(tǒng)分類:

            目前廣泛使用的操作系統(tǒng)有三個:

            A.多道批處理操作系統(tǒng)

            B.分時操作系統(tǒng)

            C.實時操作系統(tǒng)

            

          【原創(chuàng)】【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

           

            這三種系統(tǒng)雖然都很重要,但是我們接觸最多的是實時操作系統(tǒng),所以下面重點將介紹實時操作系統(tǒng)。

            二、實時操作系統(tǒng):

            1.實時操作系統(tǒng)具有如下特點:

            a) 異步的事件響應(yīng)

            b) 切換時間和中斷延遲時間確定

            c) 優(yōu)先級中斷和調(diào)度

            d) 搶占式調(diào)度

            e) 內(nèi)存鎖定

            f) 連續(xù)文件

            g) 同步

            實時操作系統(tǒng)總的來說是事件驅(qū)動的,能對來自外界的作用和信號在限定的時間范圍內(nèi)做出響應(yīng)。它強調(diào)的是實時性、可靠性和靈活性,與實時應(yīng)用軟件相結(jié)合成為有機的整體起著核心作用,由它來管理和協(xié)調(diào)各項工作,為應(yīng)用軟件提供良好的運行軟件環(huán)境及開發(fā)環(huán)境。

            從實時系統(tǒng)的應(yīng)用特點來看實時操作系統(tǒng)可以分為兩種:

            a.一般實時操作系統(tǒng)

            b.實時操作系統(tǒng)

            2.實時操作系統(tǒng)的特點

            一般實時操作系統(tǒng)應(yīng)用于實時處理系統(tǒng)的上位機和實時查詢系統(tǒng)等實時性較弱的實時系統(tǒng),并且提供了開發(fā)、調(diào)試、運用一致的環(huán)境

            實時操作系統(tǒng)應(yīng)用于實時性要求較高的實時控制系統(tǒng),而且應(yīng)用程序的開發(fā)過程是通過交叉開發(fā)來完成的,即開發(fā)環(huán)境與運行環(huán)境是一致。嵌入式實時操作系統(tǒng)具有規(guī)模小(一般在幾K~幾十K內(nèi))、可固化使用實時性強(在毫秒或微秒數(shù)量級上)的特點。

            三、嵌入式實時操作系統(tǒng)的基本概念

            下面主要認(rèn)識一下幾個嵌入式實時操作系統(tǒng)的基本概念,這也是學(xué)習(xí)操作系統(tǒng)的基礎(chǔ)。

            1、前后臺系統(tǒng):對基于芯片的開發(fā)來說,應(yīng)用程序一般是一個無線循環(huán),可稱為前臺系統(tǒng)或超循環(huán)系統(tǒng)。

            

          【原創(chuàng)】【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

           

            2、操作系統(tǒng):是計算機中最基本的程序。操作系統(tǒng)負(fù)責(zé)計算機系統(tǒng)中全部軟硬件資源的分配與回收、控制與協(xié)調(diào)等并發(fā)的活動;操作系統(tǒng)提供用戶接口,是用戶獲得良好的工作環(huán)境;操作系統(tǒng)為用戶擴展新的系統(tǒng)功能提供軟件平臺。

            

          【原創(chuàng)】【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

           

            3、實時操作系統(tǒng)(RTOS):實時操作系統(tǒng)是一般在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運行于RTOS之上的各個任務(wù),RTOS根據(jù)各個任務(wù)的要求,進行資源(包括存儲器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個任務(wù)均有一個優(yōu)先級,RTOS根據(jù)各個任務(wù)的優(yōu)先級,動態(tài)地切換各個任務(wù),保證對實時性的要求。

            4、代碼臨界區(qū):也稱為臨界區(qū),指處理時不可分割的代碼,運行這些代碼不允許被打斷。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入(這不是絕對的,如果中斷不調(diào)用任何包含臨界區(qū)的代碼,也不訪問任何臨界區(qū)使用的共享資源,這個中斷可能可以執(zhí)行)。為確保臨界區(qū)代碼的執(zhí)行,在進入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完成以后要立即開中斷。

            5、資源:程序運行時可使用的軟、硬件環(huán)境統(tǒng)稱為資源。資源可以是輸入設(shè)備。也可以是一個變量、一個結(jié)構(gòu)或一個數(shù)組等。

            6、共享資源:可以被一個以上的任務(wù)使用的資源。為了防止數(shù)據(jù)被破壞,每個任務(wù)在與共享資源打交道時,必須獨占該資源,這叫做互斥。

            

          【原創(chuàng)】【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

           

            7、任務(wù):一個任務(wù)也稱作一個線程,是一個簡單的程序,該程序可以認(rèn)為CPU完全屬于該程序自己。實時應(yīng)用程序的設(shè)計過程,包括如何把問題分割成多個任務(wù),每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的??臻g。

            8、任務(wù)切換:當(dāng)多任務(wù)內(nèi)核決定運行另外的任務(wù)時,它保證正在運行任務(wù)的當(dāng)前狀態(tài),即CPU寄存器中的全部內(nèi)容。這些內(nèi)容保存在任務(wù)的當(dāng)前狀態(tài)保存區(qū),也就是任務(wù)自己的棧區(qū)之中。入棧工作完成以后,就把下一個將要運行的任務(wù)的當(dāng)前狀態(tài)從任務(wù)的棧中重裝如CPU的寄存器,并開始下一個任務(wù)的運行,這個過程就稱任務(wù)切換。做任務(wù)切換所需要的時間取決于CPU有多少寄存器要入棧。

            9、內(nèi)核:多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個任務(wù),或者說為每個任務(wù)分配CPU時間,并且負(fù)責(zé)任務(wù)之間的通信。內(nèi)核提供的基本服務(wù)是任務(wù)切換。使用實時內(nèi)核可以大大簡化應(yīng)用系統(tǒng)的設(shè)計,是因為實時內(nèi)核允許將應(yīng)用分成若干個任務(wù),由實時內(nèi)核來管理它們。內(nèi)核提供必不可少的系統(tǒng)服務(wù),如信號量、消息隊列、延時等。

            10、調(diào)度:調(diào)度是內(nèi)核的主要職責(zé)之一。調(diào)度就是決定該輪到哪個任務(wù)運行了。通過優(yōu)先級來實行調(diào)度(非占先式還是占先式)。

            11、非占先式內(nèi)核:要求每個任務(wù)自我放棄CPU的所有權(quán)。非占先式調(diào)度法也稱作合作型多任務(wù),各個任務(wù)彼此合作共享一個CPU。異步事件還是由中斷服務(wù)來處理。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),知道該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。

            12、占先式內(nèi)核:當(dāng)系統(tǒng)響應(yīng)時間很重要時,要使用占先式內(nèi)核。因此絕大多數(shù)商業(yè)上銷售的實時內(nèi)核都是占先式內(nèi)核。最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒狀態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。如果是中斷服務(wù)子程序使一個高優(yōu)先級的任務(wù)進入就緒態(tài),中斷完成時,中斷了的任務(wù)被掛起,優(yōu)先級高的那個任務(wù)開始運行。

            13、任務(wù)優(yōu)先級:任務(wù)的優(yōu)先級是表示任務(wù)被調(diào)度的優(yōu)先程度。每個任務(wù)都具有優(yōu)先級。任務(wù)越重要,賦予的優(yōu)先級應(yīng)越高,越容易被調(diào)度而進入運行態(tài)。

            14、中斷:中斷是一種硬件機制,用于通知CPU有個異步事件發(fā)生了。中斷一旦被識別,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳轉(zhuǎn)到專門的子程序,稱為中斷服務(wù)子程序(ISR)。中斷服務(wù)子程序做事件處理,處理完成后,程序回到:

            A. 在前后臺系統(tǒng)中,程序回到后臺程序;

            B.對非占先式內(nèi)核而言,程序回到被中斷了的任務(wù);

            C.對占先式內(nèi)核而言,讓進入就緒態(tài)的優(yōu)先級最高的任務(wù)開始運行。

            

          【原創(chuàng)】【單片機到嵌入式之路】序列之7:操作系統(tǒng)基本概念你知道多少?

           

            15、時鐘節(jié)拍: 時鐘節(jié)拍是特定的周期性中斷。這個中斷可以看作是系統(tǒng)心臟的脈動。中斷之間的時間間隔取決于不同應(yīng)用,一般在10ms到200ms之間。時鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時若干個整數(shù)時鐘節(jié)拍,以及當(dāng)任務(wù)等待事件發(fā)生時,提供等待超時的依據(jù)。時鐘節(jié)拍率越快,系統(tǒng)的額外開銷就越大。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          51單片機相關(guān)文章:51單片機教程


          單片機相關(guān)文章:單片機教程


          linux相關(guān)文章:linux教程


          單片機相關(guān)文章:單片機視頻教程


          單片機相關(guān)文章:單片機工作原理




          關(guān)鍵詞: 嵌入式 操作系統(tǒng)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();