第十課-嵌入式操作系統(tǒng)概述課件_第1頁
第十課-嵌入式操作系統(tǒng)概述課件_第2頁
第十課-嵌入式操作系統(tǒng)概述課件_第3頁
第十課-嵌入式操作系統(tǒng)概述課件_第4頁
第十課-嵌入式操作系統(tǒng)概述課件_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、CPU與外設(shè)的數(shù)據(jù)傳輸方式通常有以下幾種: 查詢方式: CPU不斷的查詢外設(shè)狀態(tài),如果外設(shè)準(zhǔn)備就緒就開始傳輸數(shù)據(jù),如果外設(shè)還沒有準(zhǔn)備好,就進(jìn)入循環(huán)等待 中斷方式: 當(dāng)外設(shè)準(zhǔn)備好與CPU進(jìn)行數(shù)據(jù)交換時(shí),首先向CPU提出中斷請求,CPU在接到中斷請求并在一定條件下,暫停原來的程序,并執(zhí)行中斷服務(wù)程序,執(zhí)行完后再次返回源程序的過程 DMA方式: 不經(jīng)過CPU而直接進(jìn)行數(shù)據(jù)交換的過程中斷概述中斷法的引入,極大的提高了CPU的利用效率ARM920T內(nèi)核有兩個(gè)中斷IRQ中斷和FIQ中斷 IRQ是普通中斷用于處理一般事件,F(xiàn)IQ是快速中斷,一般用于大批量數(shù)據(jù)傳送等情況S3C2440中斷控制器有60個(gè)中斷源

2、對外提供24個(gè)外中斷輸入引腳,內(nèi)部所有設(shè)備都有中斷請求信號,例如DMA控制器、UART、IIC等等中斷概述中斷異常基本概念中斷異?;靖拍預(yù)RM的異常中斷復(fù)位(reset):當(dāng)處理器的復(fù)位引腳有效時(shí),系統(tǒng)產(chǎn)生復(fù)位中斷,程序跳到中斷處理程序處執(zhí)行。 復(fù)位中斷發(fā)生的情況:系統(tǒng)加電時(shí)系統(tǒng)復(fù)位時(shí)跳轉(zhuǎn)到復(fù)位中斷向量處(0 x00000000)未定義指令(undefined instruction):當(dāng)ARM處理器或者是系統(tǒng)中的協(xié)處理器認(rèn)為當(dāng)前指令未定義時(shí),產(chǎn)生未定義的指令異常處理。軟件中斷(software interrupt):有用戶定義的中斷指令,在實(shí)時(shí)操作系統(tǒng)中可以通過該機(jī)制實(shí)現(xiàn)系統(tǒng)功能的調(diào)用。A

3、RM的異常中斷指令預(yù)取中止(prefech abort):如果處理器預(yù)取的指令的地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生指令預(yù)取中止異常處理。數(shù)據(jù)訪問中止(data Abort):如果數(shù)據(jù)訪問指令的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常處理。外部中斷請求(IRQ):當(dāng)處理器的外部中斷請求引腳有效,而且CPSR寄存器的I控制位被清除時(shí),處理器產(chǎn)生外部中斷請求(IRQ)異常處理??焖僦袛嗾埱?FIQ):當(dāng)處理器的外部快速中斷請求引腳有效,而且CPSR寄存器的F控制位被清除時(shí),處理器產(chǎn)生快速中斷請求(FIQ)異常處理。ARM處理器對異常中斷的響應(yīng)過程進(jìn)入

4、異常中斷的過程(由內(nèi)核自動(dòng)完成)保存PC4值到新的異常模式的Lr中,以便處理完異常后,能正確返回原程序。保存CPSR到新的異常模式的SPSR中。強(qiáng)制改變Mode bits,使ARM進(jìn)入相應(yīng)的運(yùn)行模式。強(qiáng)制PC值,設(shè)置成該異常模式的向量地址,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處執(zhí)行程序。設(shè)置CPSR中的中斷禁止位,以禁止中斷發(fā)生。 從異常中斷返回的過程(由內(nèi)核自動(dòng)完成)由鏈接寄存器LR的值恢復(fù)PC,返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行程序。 從SPSR恢復(fù)CPSR。清除中斷屏蔽位。注:當(dāng)一個(gè)異常發(fā)生時(shí),ARM處理器總是切換到ARM狀態(tài)(即非Thumb狀態(tài)). 一、進(jìn)入異常 當(dāng)發(fā)生異常時(shí),除了復(fù)位

5、異常立即中止當(dāng)前指令外,處理器盡量完成當(dāng)前指令,然后脫離當(dāng)前的程序去處理異常。ARM處理器對異常中斷的響應(yīng)過程如下 : 1、保存返回地址 將引起異常指令的下一條指令的地址保存到新的異常模式x下的R14,即R14_中,使異常處理程序執(zhí)行完后能正確返回原程序。 2、保存當(dāng)前狀態(tài)寄存器CPSR的內(nèi)容 將CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷對應(yīng)的SPSR中,便于中斷返回時(shí)恢復(fù)處理器當(dāng)前的狀態(tài)位、中斷屏蔽位以及各條件標(biāo)志位。3、設(shè)置當(dāng)前狀態(tài)寄存器CPSR中的相應(yīng)位設(shè)置CPSR模式控制位CPSR4:0,使處理器進(jìn)入相應(yīng)的執(zhí)行模式;設(shè)置中斷標(biāo)志位(CPSR6=1),禁止IRQ中斷;設(shè)置中斷標(biāo)志位(CPSR

6、7=1)禁止FIQ中斷,當(dāng)進(jìn)入Reset或FIQ模式時(shí)。4、轉(zhuǎn)去執(zhí)行中斷處理程序 取相應(yīng)的中斷向量給程序計(jì)數(shù)器PC,使程序開始執(zhí)行中斷處理程序。 一般地說,矢量地址處將包含一條指向相應(yīng)程序的轉(zhuǎn)移指令,從而可跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行異常中斷處理程序 。ARM處理器對異常的響應(yīng)過程可以用偽代碼描述如下 : R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*當(dāng)運(yùn)行于ARM狀態(tài)時(shí)*/ CPSR6=1 /*禁止新的IRQ中斷*/if =Reset or FIQ then CPSR7=1 /*當(dāng)Reset 或F

7、IQ異常中斷時(shí)*/*禁止新 的FIQ中斷*/ PC=exception vector address 注意使用異常模式下的特有寄存器 每個(gè)異常模式對應(yīng)有兩個(gè)寄存器R13_、R14_分別保存相應(yīng)模式下的堆棧指針、返回地址;堆棧指針可用來定義一個(gè)存儲(chǔ)區(qū)域保存其它用戶寄存器,在程序初始化時(shí)應(yīng)該對各種模式堆棧設(shè)置,便于隨時(shí)使用。 FIQ模式還有額外的專用寄存器R8_fiqR12_fiq,使用這些寄存器可以加快快速中斷的處理速度。 二、異常返回 異常返回應(yīng)執(zhí)行的操作異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:將返回地址裝入PC:把連接寄存器LR的值減去相應(yīng)的偏移量,然后送到PC中?;謴?fù)

8、CPSR的值:將SPSR復(fù)制回CPSR中。清除中斷屏蔽位:若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。 可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。嵌入式操作系統(tǒng)本章主要內(nèi)容:(1) 嵌入式操作系統(tǒng)概述(2) 嵌入式操作系統(tǒng)的功能(3) 幾種主要的嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)概述嵌入式操作系統(tǒng)是一種用于支持嵌入式應(yīng)用程序的操作系統(tǒng)。它是一個(gè)界于應(yīng)用程序和嵌入式計(jì)算機(jī)系統(tǒng)的硬件之間的程序集合,其任務(wù)是控制和管理嵌入式系統(tǒng)中的硬件和軟件資源,以方便系統(tǒng)使用者。為什么要使用嵌入式操作系統(tǒng)并不是所有的嵌入式系統(tǒng)上面都需要有一個(gè)嵌入式操作系統(tǒng)。一些本身功能很簡單

9、的嵌入式系統(tǒng)出于效率和成本的考慮,常不使用嵌入式操作系統(tǒng)。但當(dāng)一個(gè)嵌入式系統(tǒng)的復(fù)雜程度達(dá)到一定的水平,其硬件又具備充足的處理能力的時(shí)候,就需要使用嵌入式操作系統(tǒng)。一般說來當(dāng)一個(gè)嵌入式系統(tǒng)有以下一些需求的時(shí)候就要用到嵌入式操作系統(tǒng)。1. 系統(tǒng)需要運(yùn)行多個(gè)任務(wù)隨著應(yīng)用的發(fā)展,嵌入式系統(tǒng)需要運(yùn)行的任務(wù)變得越來越復(fù)雜,這時(shí)便需要引入操作系統(tǒng)的概念。操作系統(tǒng)可以給系統(tǒng)中的任務(wù)提供調(diào)度機(jī)制,使用實(shí)時(shí)調(diào)度算法完成任務(wù)調(diào)度。操作系統(tǒng)還提供內(nèi)存管理接口,用以簡化任務(wù)中需要的操作。在使用操作系統(tǒng)之后,可以方便地定制任務(wù),并與操作系統(tǒng)一起下載到系統(tǒng)中。如果用戶的需求發(fā)生了變化,只需要改變?nèi)蝿?wù)內(nèi)容,然后重新和操作系統(tǒng)

10、一起下載即可。2. 系統(tǒng)需要有直觀的用戶界面一些嵌入式系統(tǒng)并不是在啟動(dòng)之后就默默地去運(yùn)行,它們也需要同用戶進(jìn)行交互。最好是能通過圖形式的用戶界面進(jìn)行這種交互。這就要用到圖形界面系統(tǒng)。而圖形界面系統(tǒng)是離不開操作系統(tǒng)支持的。3. 系統(tǒng)需要有網(wǎng)絡(luò)功能在沒有操作系統(tǒng)的情況下,支持網(wǎng)絡(luò)功能并不是不可能的事情。比如TCP/IP協(xié)議就可以用硬件芯片來實(shí)現(xiàn)。但使用這樣的芯片會(huì)使成本增加,并且網(wǎng)絡(luò)協(xié)議常會(huì)不斷升級,用硬件芯片則無法同步地升級。而在有操作系統(tǒng)的嵌入式計(jì)算機(jī)系統(tǒng)中,則可以根據(jù)需要定制網(wǎng)絡(luò)協(xié)議,適應(yīng)各種網(wǎng)絡(luò)環(huán)境的需求,也便于跟上網(wǎng)絡(luò)協(xié)議更新的步伐。4. 系統(tǒng)需要用到數(shù)據(jù)庫管理系統(tǒng)一些移動(dòng)信息設(shè)備需要使

11、用嵌入式數(shù)據(jù)庫管理系統(tǒng)解決移動(dòng)計(jì)算環(huán)境下的數(shù)據(jù)管理問題。比如掌上計(jì)算機(jī)、PDA、車載設(shè)備、智能手機(jī)等一些嵌入式系統(tǒng)就經(jīng)常有此類需求。而嵌入式數(shù)據(jù)庫管理系統(tǒng)則不能離開操作系統(tǒng)的支持。5. 系統(tǒng)需要不斷地進(jìn)行升級和進(jìn)行二次開發(fā)如果要進(jìn)行某些二次開發(fā)工作,那么使用嵌入式操作系統(tǒng)是一個(gè)明智的選擇。嵌入式操作系統(tǒng)都提供了一系列供二次開發(fā)人員使用的API接口。在這些接口之上進(jìn)行開發(fā),可以免去很多繁瑣的底層開發(fā)工作,這不僅可以大大提高嵌入式系統(tǒng)的開發(fā)效率。而且也提高了嵌入式應(yīng)用軟件的可移植性。嵌入式操作系統(tǒng)與實(shí)時(shí)操作系統(tǒng)早期的嵌入式系統(tǒng)幾乎都用于控制目的,因此或多或少都有些實(shí)時(shí)要求。所以在那時(shí)“嵌入式操作系

12、統(tǒng)”實(shí)際上就是“實(shí)時(shí)操作系統(tǒng)(RTOS)”的代名詞。近幾年來,由于掌上計(jì)算機(jī)這類設(shè)備的出現(xiàn),有了許多沒有實(shí)時(shí)要求的嵌入式系統(tǒng)。在這樣的背景下,“嵌入式操作系統(tǒng)”和“實(shí)時(shí)操作系統(tǒng)”就成了不同的概念。實(shí)時(shí)系統(tǒng)一個(gè)實(shí)時(shí)系統(tǒng)是能滿足以下的要求的系統(tǒng):當(dāng)外部事件到來時(shí),計(jì)算機(jī)能立即進(jìn)行處理,使得在指定的時(shí)間內(nèi)能完成對事件的處理。而且外部事件到來的時(shí)間完全是隨機(jī)的,沒有什么周期性的規(guī)律。實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)是具有實(shí)時(shí)性,能支持實(shí)時(shí)系統(tǒng)工作的操作系統(tǒng)。它必須能保證實(shí)時(shí)任務(wù)在預(yù)定的時(shí)間內(nèi)完成。其首要任務(wù)是調(diào)度一切可以利用的資源完成實(shí)時(shí)任務(wù)。其次才著眼于提高整個(gè)計(jì)算機(jī)系統(tǒng)的使用效率。嵌入式操作系統(tǒng)和實(shí)時(shí)操作

13、系統(tǒng)之間的關(guān)系大部分嵌入式操作系統(tǒng)都是實(shí)時(shí)操作系統(tǒng)。大部分實(shí)時(shí)操作系統(tǒng)也都是嵌入式操作系統(tǒng)。它們二者間有很大的交集,我們稱屬于交集部分的操作系統(tǒng)為實(shí)時(shí)嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)的主要性能指標(biāo)嵌入式操作系統(tǒng)在實(shí)時(shí)系統(tǒng)中起著重要的作用,其性能的好壞將直接影響到整個(gè)系統(tǒng)的性能。各種量化的性能指標(biāo)對評價(jià)一個(gè)嵌入式操作系統(tǒng)提供了客觀的依據(jù),這些指標(biāo)分為時(shí)間性能指標(biāo)和存儲(chǔ)開銷指標(biāo)兩類。1. 時(shí)間性能指標(biāo)(1) 中斷響應(yīng)時(shí)間(2) 中斷恢復(fù)時(shí)間(3) 任務(wù)上下文切換時(shí)間(4) 任務(wù)響應(yīng)時(shí)間28中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間是指從中斷發(fā)生到開始執(zhí)行用戶中斷服務(wù)程序的第一條指令之間的時(shí)間。應(yīng)注意中斷延遲時(shí)間與中斷

14、響應(yīng)時(shí)間的區(qū)別。前者指從中斷發(fā)生到開始執(zhí)行中斷服務(wù)程序的第一條指令之間的時(shí)間,而后者指開始執(zhí)行用戶的中斷服務(wù)程序的第一條指令之間的時(shí)間。29中斷恢復(fù)時(shí)間中斷恢復(fù)時(shí)間是從用戶中斷服務(wù)程序結(jié)束運(yùn)行到回到被中斷代碼之間的時(shí)間。中斷處理時(shí)間具體的中斷處理是由應(yīng)用決定的,并不是操作系統(tǒng)的組成部分,但在這里單獨(dú)提出來的目的是讓大家對中斷處理時(shí)間的要求有個(gè)清晰的認(rèn)識。30任務(wù)上下文切換時(shí)間在多任務(wù)系統(tǒng)中,任務(wù)上下文切換是指CPU的控制權(quán)由當(dāng)前運(yùn)行的任務(wù)轉(zhuǎn)移到另外一個(gè)就緒任務(wù)時(shí)所發(fā)生的事件。這時(shí),當(dāng)前運(yùn)行的任務(wù)將轉(zhuǎn)為就緒或者等待狀態(tài),另一個(gè)被選定的就緒任務(wù)將成為當(dāng)前運(yùn)行任務(wù)。任務(wù)上下文切換時(shí)間包括保存當(dāng)前運(yùn)行

15、任務(wù)的時(shí)間、選擇下一個(gè)任務(wù)的調(diào)度時(shí)間以及將要運(yùn)行任務(wù)的恢復(fù)時(shí)間。任務(wù)切換是在實(shí)時(shí)系統(tǒng)中頻繁發(fā)生的動(dòng)作,其時(shí)間的快慢直接影響到整個(gè)系統(tǒng)的實(shí)時(shí)性能。31任務(wù)響應(yīng)時(shí)間任務(wù)響應(yīng)時(shí)間是指從任務(wù)對應(yīng)的中斷產(chǎn)生到該任務(wù)真正開始運(yùn)行這一過程所花費(fèi)的時(shí)間。任務(wù)響應(yīng)時(shí)間又稱調(diào)度延遲。2. 存儲(chǔ)開銷指標(biāo)在嵌入式系統(tǒng)中,存儲(chǔ)空間的大小也是很重要的問題。即使目前存儲(chǔ)器的價(jià)格在不斷下降,但基于成本和功耗的考慮,嵌入式系統(tǒng)的存儲(chǔ)器一般都不大。而在這有限的空間內(nèi)不僅要裝載嵌入式操作系統(tǒng),還要裝載應(yīng)用程序。因此,在嵌入式操作系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)和應(yīng)用開發(fā)中,除了上述各項(xiàng)時(shí)間性能指標(biāo),還應(yīng)關(guān)注嵌入式操作系統(tǒng)的存儲(chǔ)開銷,這也是嵌入式操作

16、系統(tǒng)與其他操作系統(tǒng)的明顯區(qū)別之一。嵌入式操作系統(tǒng)的存儲(chǔ)開銷嵌入式操作系統(tǒng)的存儲(chǔ)開銷分為代碼的存儲(chǔ)開銷和數(shù)據(jù)空間的存儲(chǔ)開銷兩部分。操作系統(tǒng)的代碼大小取決于多種因素,它一般與操作系統(tǒng)的功能有直接關(guān)系,從幾KB到上百KB都是可能的。操作系統(tǒng)的數(shù)據(jù)空間通常又被稱為操作系統(tǒng)的工作區(qū)。它由以下幾部分所構(gòu)成:(1) 用于存儲(chǔ)操作系統(tǒng)的系統(tǒng)變量的RAM空間。這一部分空間的大小固定。(2) 用于存儲(chǔ)操作系統(tǒng)對象的RAM空間。在多任務(wù)的系統(tǒng)中要?jiǎng)?chuàng)建任務(wù)、消息隊(duì)列、事件、堆、分區(qū)、信號量、軟定時(shí)器和用戶擴(kuò)展區(qū)等各種操作系統(tǒng)對象。它們的數(shù)目根據(jù)應(yīng)用的需要是可變的。(3) 堆棧所需的空間。包括任務(wù)堆棧、中斷堆棧等。在多

17、任務(wù)系統(tǒng)中,每個(gè)任務(wù)都是獨(dú)立運(yùn)行的,操作系統(tǒng)給每個(gè)任務(wù)提供了單獨(dú)的堆??臻g。應(yīng)用開發(fā)者決定分配給每個(gè)任務(wù)的堆??臻g時(shí),應(yīng)盡可能使之接近實(shí)際需求量(但這實(shí)際上是一件很困難的事)。決定堆??臻g的大小,不僅需要計(jì)算任務(wù)本身的需求(局部變量、函數(shù)調(diào)用等),如果允許中斷嵌套,則還需要計(jì)算最多中斷嵌套層數(shù)(保存寄存器、中斷服務(wù)程序中的局部變量等)。嵌入式操作系統(tǒng)的結(jié)構(gòu)單一內(nèi)核結(jié)構(gòu)層次結(jié)構(gòu)微內(nèi)核結(jié)構(gòu)操作系統(tǒng)可以最粗略地分為內(nèi)核(kernel)、設(shè)備驅(qū)動(dòng)與外殼(shell)三大部分。通俗地講,內(nèi)核是操作系統(tǒng)的核心模塊,管理CPU的運(yùn)行;而外殼是內(nèi)核的外圍模塊,對用戶發(fā)出的命令進(jìn)行解釋和處理。嵌入式系統(tǒng)內(nèi)核廣義

18、解釋指裝入到存儲(chǔ)器的嵌入式軟件中的操作系統(tǒng)部分,在這種情況下,除了操作系統(tǒng)內(nèi)核之外,嵌入式軟件還包括板級支持包,驅(qū)動(dòng)程序和應(yīng)用軟件 狹義解釋指嵌入式操作系統(tǒng)中負(fù)責(zé)多任務(wù)管理及任務(wù)之間進(jìn)行通信的多任務(wù)處理部分。它進(jìn)行任務(wù)管理(進(jìn)程管理),時(shí)鐘管理,內(nèi)存管理等 1. 單一內(nèi)核結(jié)構(gòu)的操作系統(tǒng)2. 層次結(jié)構(gòu)的操作系統(tǒng)3. 微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)在單一內(nèi)核結(jié)構(gòu)和層次結(jié)構(gòu)兩類操作系統(tǒng)中,操作系統(tǒng)的功能大部分都是由系統(tǒng)內(nèi)核提供的。系統(tǒng)內(nèi)核中包含的功能很多。整個(gè)操作系統(tǒng)是一個(gè)整體。沒有再劃分內(nèi)核部分和核外部分。我們把這兩類操作系統(tǒng)統(tǒng)稱為一體化結(jié)構(gòu)的操作系統(tǒng)。這樣按照操作系統(tǒng)內(nèi)核中包括的功能的多少,操作系統(tǒng)就被分

19、為了微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)和一體化結(jié)構(gòu)的操作系統(tǒng)兩大類。微內(nèi)核結(jié)構(gòu)操作系統(tǒng)的優(yōu)點(diǎn)(1) 內(nèi)核本身小,而且簡單,所以系統(tǒng)容易理解,容易維護(hù)。(2)系統(tǒng)的配置更為靈活方便。有利于其它軟件開發(fā)商開發(fā)各種“第三方軟件包”。(3)更重要的是,由于微內(nèi)核很小,所以CPU在內(nèi)核中運(yùn)行的時(shí)間十分短暫。因而提高了系統(tǒng)的實(shí)時(shí)性。內(nèi)核是操作系統(tǒng)中靠近硬件并且享有最高特權(quán)的一層。為了適應(yīng)嵌入式計(jì)算機(jī)存儲(chǔ)空間小的限制,嵌入式操作系統(tǒng)的內(nèi)核都盡量小型化。單內(nèi)核缺點(diǎn)占內(nèi)存空間大,缺乏可擴(kuò)展性,維護(hù)困難,排除故障和增加新功能需要重編譯 優(yōu)點(diǎn)系統(tǒng)花在內(nèi)核功能切換的開銷非常小,對外來事件反應(yīng)速度快 嵌入式操作系統(tǒng)的組成1. 硬件抽

20、象層硬件抽象層用于屏蔽不同硬件的特征。向下它與嵌入式系統(tǒng)的硬件直接打交道,向上它對操作系統(tǒng)內(nèi)核中的各個(gè)模塊提供了一個(gè)統(tǒng)一的接口,增強(qiáng)了系統(tǒng)的可移植性。當(dāng)需要將嵌入式操作系統(tǒng)從一個(gè)硬件平臺移植到另一個(gè)硬件平臺上的時(shí)候只需修改硬件抽象層的程序代碼。一些嵌入式操作系統(tǒng)提供一種稱為板級支持包(Board Support Package)的軟件模塊。這種板級支持包就是一種具體化的硬件抽象層軟件。2. 操作系統(tǒng)內(nèi)核任務(wù)管理、存儲(chǔ)管理、任務(wù)間通信和中斷響應(yīng)等幾部分功能必須放在操作系統(tǒng)的內(nèi)核中。而其它的一些功能,例如時(shí)鐘管理、文件管理、電源管理、動(dòng)態(tài)加載等,雖然也可以放在內(nèi)核之中,但更多的是放在內(nèi)核之外,以服

21、務(wù)任務(wù)或庫函數(shù)的形式存在。3. 核外服務(wù)在多數(shù)情況下時(shí)鐘管理、文件管理、電源管理、動(dòng)態(tài)加載等一些功能是由內(nèi)核之外的服務(wù)任務(wù)來實(shí)現(xiàn)。4. 應(yīng)用程序接口應(yīng)用程序接口的作用是方便用戶編寫特定領(lǐng)域的嵌入式應(yīng)用程序。嵌入式操作系統(tǒng)的類型嵌入式操作系統(tǒng)的分類原則:供應(yīng)方式實(shí)時(shí)性應(yīng)用按供應(yīng)方式分類從嵌入式操作系統(tǒng)的供應(yīng)方式上可將其分為商用型和免費(fèi)型兩類。按實(shí)時(shí)性分類從嵌入式操作系統(tǒng)的實(shí)時(shí)性上可將其分為實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng)兩類。按 應(yīng)用分類從嵌入式操作系統(tǒng)的歷史淵源上可將其分為PC型嵌入式操作系統(tǒng)和非PC型嵌入式操作系統(tǒng)兩類。任務(wù)管理任務(wù)是一個(gè)具有獨(dú)立功能的程序段的一次運(yùn)行活動(dòng),是操作系統(tǒng)內(nèi)核進(jìn)行調(diào)度

22、的基本單位。在不支持線程的嵌入式操作系統(tǒng)中,它相當(dāng)于進(jìn)程,在支持線程的系統(tǒng)中它相當(dāng)于線程。任務(wù)管理包括建立任務(wù)、刪除任務(wù)、掛起任務(wù)、喚醒任務(wù)、設(shè)置任務(wù)屬性、查詢?nèi)蝿?wù)屬性、調(diào)度任務(wù)等項(xiàng)工作。它們可以引起任務(wù)在各種狀態(tài)之間進(jìn)行轉(zhuǎn)換。在這幾項(xiàng)工作中任務(wù)調(diào)度是關(guān)鍵。任務(wù)狀態(tài)任務(wù)的狀態(tài)代表了任務(wù)占有系統(tǒng)資源的狀況。不同的嵌入式操作系統(tǒng)所定義的任務(wù)狀態(tài)雖然略有不同,但都有就緒、運(yùn)行、阻塞等3種狀態(tài)。1. 就緒狀態(tài):就緒狀態(tài)是任務(wù)已經(jīng)具備被運(yùn)行的條件,正在等待被運(yùn)行的狀態(tài)。2. 運(yùn)行狀態(tài):運(yùn)行狀態(tài)是任務(wù)已經(jīng)獲得了處理器資源,正在被運(yùn)行的狀態(tài)。3. 阻塞狀態(tài):任務(wù)正在等待某種事件發(fā)生。例如等待某一資源已經(jīng)可以

23、使用的通知。任務(wù)狀態(tài)間的轉(zhuǎn)換一個(gè)任務(wù)被建立后首先進(jìn)入的是就緒狀態(tài)。處于執(zhí)行狀態(tài)的任務(wù)如果需要使用某種資源并且暫時(shí)得不到滿足時(shí),就會(huì)進(jìn)入到阻塞狀態(tài)。處于就緒狀態(tài)的任務(wù),如果被操作系統(tǒng)內(nèi)核中的調(diào)度程序選中,獲得了CPU的使用權(quán)后就將進(jìn)入執(zhí)行狀態(tài),在系統(tǒng)的處理器上運(yùn)行。處于執(zhí)行狀態(tài)的任務(wù)如果執(zhí)行權(quán)被具有更高優(yōu)先級的任務(wù)搶占或運(yùn)行時(shí)間超時(shí),就會(huì)重新回到就緒狀態(tài)。處于阻塞狀態(tài)的任務(wù),如果需要使用的資源系統(tǒng)已經(jīng)可以得到,那么它將轉(zhuǎn)換為就緒狀態(tài)。任務(wù)調(diào)度任務(wù)調(diào)度是在多任務(wù)環(huán)境下產(chǎn)生的一個(gè)概念。其作用是確定任務(wù)的執(zhí)行順序和執(zhí)行時(shí)間的長短。調(diào)度可被認(rèn)為是在一個(gè)特定時(shí)刻用來選擇將要運(yùn)行的任務(wù)及其運(yùn)行時(shí)間的規(guī)則。在

24、發(fā)生以下情況后,操作系統(tǒng)內(nèi)核通常就要進(jìn)行任務(wù)調(diào)度。(1) 中斷服務(wù)程序結(jié)束運(yùn)行。(2) 當(dāng)前運(yùn)行的任務(wù)因等待某一資源而進(jìn)入了阻塞狀態(tài)。(3) 某一任務(wù)進(jìn)入就緒狀態(tài)。先來先服務(wù)(First Come First Serve,F(xiàn)CFS)法、輪轉(zhuǎn)法是兩種在通用操作系統(tǒng)中采用最多的調(diào)度方法。但它們不太適用于嵌入式操作系統(tǒng)。為適應(yīng)實(shí)時(shí)應(yīng)用的要求,嵌入式操作系統(tǒng)通常采用基于優(yōu)先級的可搶占式調(diào)度方法。采用基于優(yōu)先級的可搶占式調(diào)度方法時(shí),每個(gè)任務(wù)被賦予一個(gè)優(yōu)先級。這個(gè)優(yōu)先級體現(xiàn)了任務(wù)對實(shí)時(shí)性的要求,任務(wù)的實(shí)時(shí)性越強(qiáng),其優(yōu)先級就越高。當(dāng)有優(yōu)先級更高的任務(wù)進(jìn)入就緒狀態(tài)時(shí),則當(dāng)前任務(wù)立即停止運(yùn)行,把CPU的使用權(quán)交

25、給這個(gè)優(yōu)先級更高的任務(wù),使它立刻投入運(yùn)行。這樣保證了CPU時(shí)刻總是在運(yùn)行優(yōu)先級最高的任務(wù)。任務(wù)通信在并發(fā)環(huán)境下,若一個(gè)任務(wù)不受其它任務(wù)的影響,則稱該任務(wù)為獨(dú)立任務(wù),若一個(gè)任務(wù)會(huì)受到其它任務(wù)的影響,則稱該任務(wù)和影響它的任務(wù)為協(xié)作任務(wù)。任務(wù)之間的影響關(guān)系有互斥、同步、數(shù)據(jù)交換等3種。這3種關(guān)系統(tǒng)稱為任務(wù)通信。(1) 互斥:互斥指多個(gè)任務(wù)不能同時(shí)使用同一資源。例如,CPU、打印機(jī)、數(shù)據(jù)等。(2) 同步:同步指一個(gè)任務(wù)能否繼續(xù)執(zhí)行需要受到另一個(gè)任務(wù)的制約。例如,打印任務(wù)必須等計(jì)算任務(wù)完成計(jì)算工作之后才能開始打印計(jì)算結(jié)果。(3) 數(shù)據(jù)交換:數(shù)據(jù)交換目的是為了在任務(wù)之間傳遞一批數(shù)據(jù)。57存儲(chǔ)器 stora

26、ge, memory內(nèi)存儲(chǔ)器(簡稱內(nèi)存、主存、物理存儲(chǔ)器) 處理機(jī)能直接訪問的存儲(chǔ)器。用來存放系統(tǒng)和用戶的程序和數(shù)據(jù),其特點(diǎn)是存取速度快,存儲(chǔ)方式是以新?lián)Q舊,斷電信息丟失。外存儲(chǔ)器(簡稱外存、輔助存儲(chǔ)器) 處理機(jī)不能直接訪問的存儲(chǔ)器。用來存放用戶的各種信息,存取速度相對內(nèi)存而言要慢得多,但它可用來長期保存用戶信息。存儲(chǔ)管理概述協(xié)調(diào)使用這些存儲(chǔ)器正是OS提要做的工作之一存儲(chǔ)管理概述存儲(chǔ)管理概述內(nèi)存的作用由存儲(chǔ)單元(字節(jié)或字)組成的一維連續(xù)地址空間,用來存放當(dāng)前正在運(yùn)行的程序的代碼或數(shù)據(jù),是程序中指令本身(程序計(jì)數(shù)器)所指向的存儲(chǔ)空間 內(nèi)存空間一般分為: (1)系統(tǒng)區(qū),存放操作系統(tǒng),一些標(biāo)準(zhǔn)子程序

27、。 (2)用戶區(qū),存放用戶的程序和數(shù)據(jù)等?;靖拍?1、實(shí)存儲(chǔ)器和虛存儲(chǔ)器 (1)實(shí)存儲(chǔ)器 實(shí)存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中配置的實(shí)際物理存儲(chǔ)器。 通常有三類: 內(nèi)存儲(chǔ)器(主存儲(chǔ)器)、外存儲(chǔ)器(輔助存儲(chǔ)器)和高速緩存(2)虛存儲(chǔ)器 虛存儲(chǔ)器有兩層含義: 指用戶程序的邏輯地址構(gòu)成的地址空間; 指當(dāng)內(nèi)存容量不滿足用戶要求時(shí),采用一種將內(nèi)存空間與外存空間有機(jī)地結(jié)合在一起,利用內(nèi)外存自動(dòng)調(diào)度的方法構(gòu)成的一個(gè)大的存儲(chǔ)器,從而給用戶程序提供更大的訪問空間。2、邏輯地址和物理地址(1)邏輯地址 用戶程序經(jīng)過編譯或匯編形成的目標(biāo)代碼,通常采用相對地址形式,其首地址為零,其余指令中的地址都是相對首地址而定。這個(gè)相對地址就

28、稱為邏輯地址或虛擬地址。(2)物理地址 物理地址是內(nèi)存中各存儲(chǔ)單元的編號,即存儲(chǔ)單元的真實(shí)地址,是可識別、可尋址并實(shí)際存在的。3、地址映射 為了保證CPU執(zhí)行程序指令時(shí)能正確訪問存儲(chǔ)單元,需要將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)可由機(jī)器直接尋址的物理地址,這一過程稱為地址映射或地址重定位。 地址映射又可分成兩類: (1)靜態(tài)地址映射。 (2)動(dòng)態(tài)地址映射。64 單一連續(xù)區(qū)存儲(chǔ)管理(Single-Partition Allocation)內(nèi)存分為兩個(gè)區(qū)域: 系統(tǒng)區(qū),用戶區(qū)。應(yīng)用程序裝入到用戶區(qū),可使用用戶區(qū)全部空間。最簡單,適用于單用戶、單任務(wù)的OS。優(yōu)點(diǎn):易于管理。缺點(diǎn):同單道程序一樣,內(nèi)存利用率低.用戶程序位于RAM中的操作系統(tǒng)0 xFFF.0單一連續(xù)區(qū)存儲(chǔ)管理原理把內(nèi)存分為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論