(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf_第1頁
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf_第2頁
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf_第3頁
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf_第4頁
(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

(計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)論文)嵌入式操作系統(tǒng)微內(nèi)核結(jié)構(gòu)的研究與設(shè)計(jì).pdf.pdf 免費(fèi)下載

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

文檔簡介

桂林工學(xué)院碩士學(xué)位論文 摘要 隨著后p c 時代的到來,嵌入式系統(tǒng)的設(shè)計(jì)已經(jīng)成為現(xiàn)代計(jì)算機(jī)應(yīng)用設(shè)計(jì)的一大領(lǐng)域 和方向,在自動控制、汽車、手持設(shè)備、航空航天、武器裝備等領(lǐng)域以及生活中的各方 面,嵌入式系統(tǒng)都有著非常廣泛的應(yīng)用。為了應(yīng)對越來越多樣化和復(fù)雜化的應(yīng)用,在嵌 入式系統(tǒng)中使用嵌入式操作系統(tǒng)已經(jīng)成為未來嵌入式系統(tǒng)發(fā)展的一個方向,嵌入式操作 系統(tǒng)的優(yōu)劣關(guān)系到整個嵌入式系統(tǒng)的性能。 本論文首先回顧了嵌入式系統(tǒng)的發(fā)展歷史,介紹了嵌入式操作系統(tǒng)的基本原理,比 較了國內(nèi)外嵌入式操作系統(tǒng)的發(fā)展和現(xiàn)狀,然后對嵌入式操作系統(tǒng)特別是微內(nèi)核結(jié)構(gòu)的 嵌入式操作系統(tǒng)作了深入的研究。通過對嵌入式操作系統(tǒng)源代碼的分析,如s m a l l r t o s s l 、u c o s i i 、u c l i n u x 等,吸取和借鑒了這些操作系統(tǒng)的設(shè)計(jì)思想和解決方案,設(shè) 計(jì)了一個嵌入式操作系統(tǒng)微內(nèi)核,該內(nèi)核由任務(wù)管理、任務(wù)通信、時鐘管理、中斷管理、 內(nèi)存管理等模塊組成。最后介紹了a r m 處理器及e l a r m 一8 3 0 硬件平臺,給出了內(nèi)核在平 臺上的實(shí)現(xiàn)。內(nèi)核實(shí)現(xiàn)了多任務(wù)的調(diào)度、任務(wù)間的通信和同步等基本的微內(nèi)核功能,通 過對互斥信號量的改進(jìn),很好的解決了搶占式嵌入式操作系統(tǒng)中普遍存在的優(yōu)先級反轉(zhuǎn) 問題。 關(guān)鍵字:嵌入式操作系統(tǒng);微內(nèi)核;a r m ;任務(wù)調(diào)度 桂林工學(xué)院碩士學(xué)位論文 a b s t r a c t a st h ep o s t p ce r ah a sc o m e , t h ee m b e d d e ds y s t e md e s i g nh a sb e c o m ea m a j o rf i e l do f m o d e mc o m p u t e ra p p l i c a t i o na n dt h ed i r e c t i o no fm o d e r nc o m p u t e rd e v e l o p m e n t e m b e d d e d s y s t e mw a su s e di n al o to fd o m a i n ,s u c ha sa u t o m a t i o nf i e l d ,a u t o m o b i l e f i e l d ,p o r t a b l e e q u i p m e n t ,a e r o s p a c e ,w e a p o n se q u i p m e n ta sw e l la so t h e ra s p e c t si nl i f e ,s ot h ee m b e d d e d s y s t e m sh a v eag o o dp r o s p e c to fa p p l i c a t i o n i no r d e rt oa d a p tt h ei n c r e a s i n gd i v e r s i t ya n d c o m p l e x i t yo fa p p l i c a t i o n ,u s i n ge m b e d d e do p e r a t i n gs y s t e mi nt h ee m b e d d e ds y s t e mh a s b e c o m ead i r e c t i o nf o r t h ef u t u r ed e v e l o p m e n to fe m b e d d e ds y s t e m s t h ee m b e d d e do p e r a t i n g s y s t e mt a k e a ni m p o r t a n tr o l ei nt h ee m b e d d e ds y s t e m ,i t sp e r f o r m a n c ed e t e r m i n e st h e e m b e d d e ds y s t e m sp e r f o r m a n c e i nt h i sp a p e r , f i r s tr e v i e w e dt h eh i s t o r yo ft h ed e v e l o p m e n to fe m b e d d e ds y s t e m ,a n d i n t r o d u c et h eb a s i cp r i n c i p l eo fe m b e d d e do p e r a t i o ns y s t e m ,c o m p a r e dt h ed e v e l o p m e n ta n d a c t u a l i t yi no u rc o u n t r ya n do v e r s e a t h e nm a k eat h o r o u g hr e s e a r c ho nt h ee m b e d d e d o p e r a t i n gs y s t e me s p e c i a lt h ee m b e d d e do p e r a t i n gt h a tu s em i c r ok e r n e ls t r u c t u r e b y a n a l y s i n gt h es o u r c ec o d eo fe m b e d d e do p e r a t i n gs y s t e m ,s u c ha ss m a l lr t o s 5 1 ,u c o si i , u c l i n u xa n ds oo n , d r a wt h ed e s i g ni d e a sa n ds o l u t i o n so f t h e s eo p e r a t i n gs y s t e m ,a n dd e s i g na m i c r ok e r n e lo p e r a t i n gs y s t e m t h es y s t e mk e r n e lc o n s i s to ft a s km a n a g e m e n tm o d u l e ,t a s k c o m m u n i c a t i o nm o d u l e ,c l o c km a n a g e m e n tm o d u l e ,i n t e r r u p tm a n a g e m e n tm o d u l ea n d m e m o r ym a n a g e m e n tm o d u l ea n ds oo n 。a tl a s ti n t r o d u c e dt h ea r mp r o c e s s o ra n d e l - a r m 一8 3 0h a r d w a r ep l a t f o r m ,a n dt h ei m p l e m e n t i o no ft h es y s t e mo nt h i sp l a t f o r m t h e s y s t e mi m p l e m e n t st h ef u n c t i o n so fam i c r ok e r n e l ,s u c ha sm u l t i t a s ks c h e d u l ef u n c t i o n ,t a s k c o m m u n i c a t i o nf u n c t i o n , t a s ks y n c h r o n i z a t i o nf u n c t i o na n ds oo n b ym a k i n gi m p l o v e m e n t s t ot h es e m a p h o ru s e di nt h es y s t e m ,i ts o l v e st h ep r i o r i t yi n v e r s i o np r o b l e mt h a tw a sv e r y c o m m o ni nt h ep r e e m p t i v es y s t e mw h i c hw a sb a s e do np r i o r i t y k e yw o r d s :e m b e d d e do p e r a t i n gs y s t e m ;m i c r ok e r n e l ;a r m ;t a s ks c h e d u l e i i 桂林工學(xué)院碩士學(xué)位論文 研究生學(xué)位論文獨(dú)創(chuàng)性聲明和版權(quán)使用授權(quán)說明 獨(dú)創(chuàng)性聲明 本人聲明:所呈交的論文是我個人在程小輝教授指導(dǎo)下進(jìn)行的研究工作及取得的研 究成果。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含他人已經(jīng)發(fā) 表或撰寫過的研究成果,也不包含為獲得桂林工學(xué)院或其它教育機(jī)構(gòu)的學(xué)位或證書面使 用過的材料。對論文的完成提供過幫助的有關(guān)人員已在論文中作了明確的說明并致以了 謝意。 學(xué)位論文作者( 簽字) :塑 簽字日期:孫q 厶忙 版權(quán)使用授權(quán)說明 本人完全了解桂林工學(xué)院關(guān)于收集、保存、使用學(xué)位論文的規(guī)定,即:按照學(xué)校要 求提交學(xué)位論文的印刷本和電子版本;學(xué)校有權(quán)保存學(xué)位論文的印刷本和電子版,并提 供目錄檢索與閱覽服務(wù);學(xué)校可以采用影印、縮印、數(shù)字化或其它復(fù)制手段保存論文; 在不以贏利為目的前提下,。學(xué)??梢怨颊撐牡牟糠只蛉績?nèi)容。( 保密論文在解密后遵 守此規(guī)定) 學(xué)位論文作者( 簽字) : 指導(dǎo)教師簽字: 簽字日期: 一弛怔擬甄 桂林工學(xué)院碩士學(xué)位論文 1 1 嵌入式系統(tǒng)的概述 第1 章緒論 嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)于應(yīng)甩 系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),如手機(jī)、p d a 、 車載g p s 、洗衣機(jī)、冰箱等。 早在2 0 世紀(jì)6 0 年代就開始有嵌入式系統(tǒng)了,但那時的系統(tǒng)設(shè)計(jì)得比較簡單,基本 上就是些簡單的監(jiān)控程序,而且?guī)缀跽麄€系統(tǒng)都是采用匯編語言來編寫,這樣,系統(tǒng) 的移植性、可讀性非常差,當(dāng)更換處理器時不得不重新改寫整個系統(tǒng)。隨著計(jì)算機(jī)技術(shù) 的發(fā)展,后來出現(xiàn)了高級語言,如c 語言,這樣,軟件開發(fā)者就可以用高級語言來進(jìn)行 程序設(shè)計(jì),從而大大的提高了系統(tǒng)的開發(fā)速度,程序的可讀性和移植性也都得到了很大 的提高,遺憾的是這些程序往往都是針對特定應(yīng)用的專用程序,這些程序運(yùn)行時也沒有 用到真正意義上的操作系統(tǒng)來進(jìn)行調(diào)度,而是采用前后臺系統(tǒng)的設(shè)計(jì)方式。在前后臺 方式的系統(tǒng)中整個應(yīng)用程序就是一個超循環(huán),在循環(huán)中調(diào)用相應(yīng)的函數(shù)來完成相應(yīng)的操 作,這部分可以看作是后臺行為,然后用中斷服務(wù)程序來處理異步事件,這部分可以看 作是前臺行為。后臺也稱之為任務(wù)級,前臺也稱之為中斷級,那些時間相關(guān)性強(qiáng)的工作 一般由中斷服務(wù)程序來處理。但是,在前后臺方式的系統(tǒng)中,中斷服務(wù)程序提供的信息 必須在等到后臺程序運(yùn)行到該處理這個信息這步時,才會調(diào)用相應(yīng)的函數(shù)對這一事件 進(jìn)行處理,因此這種系統(tǒng)的響應(yīng)時間長,而且與系統(tǒng)的整個循環(huán)有關(guān)。當(dāng)程序修改后, 響應(yīng)時間也會受到影響,因此響應(yīng)時間具有不確定性。對于早期那些功能簡單、要控制 的對象少、硬件資源少的應(yīng)用來說前后臺方式已經(jīng)能滿足要求,但隨著電子技術(shù)的發(fā)展, 處理器的處理能力和單位面積上能集成的存儲器容量都得到了很大的提高,用戶需要處 理的任務(wù)和控制的對象也變得越來越復(fù)雜,傳統(tǒng)的嵌入式應(yīng)用系統(tǒng)設(shè)計(jì)方式逐漸難以滿 足這樣的要求,因?yàn)椴捎脗鹘y(tǒng)嵌入式系統(tǒng)設(shè)計(jì)方式開發(fā)出來的軟件很難維護(hù)。嵌入式領(lǐng) 域的應(yīng)用種類繁多,為了適應(yīng)這種復(fù)雜性和多樣性特點(diǎn),縮短產(chǎn)品的開發(fā)周期,這就需 要徹底的改變傳統(tǒng)嵌入式系統(tǒng)的設(shè)計(jì)方式,在設(shè)計(jì)中引入操作系統(tǒng)。通過操作系統(tǒng)來有 效的管理越來越復(fù)雜的系統(tǒng)資源,更合理的利用c p u 資源,從而也能簡化應(yīng)用程序的設(shè) 計(jì),更好的保證系統(tǒng)的實(shí)時性和可靠性。操作系統(tǒng)通過把硬件虛擬化,使得開發(fā)人員能 夠從繁忙的驅(qū)動程序移植和維護(hù)中解脫出來,系統(tǒng)以提供庫函數(shù)、標(biāo)準(zhǔn)設(shè)備驅(qū)動程序以 及開發(fā)工具的形式來提高軟件的復(fù)用性、系統(tǒng)的實(shí)時性等。 概括的說,嵌入式軟件系統(tǒng)的發(fā)展主要經(jīng)過了如下的四個發(fā)展階段: 桂林工學(xué)院碩士學(xué)位論文 ( 1 ) 無操作系統(tǒng)階段:以單芯片為核心的可編程控制器形式的系統(tǒng),同時具有與監(jiān) 測、伺服、指示設(shè)備相配合的功能,如工業(yè)控制系統(tǒng)等,般沒有操作系統(tǒng)的支持,通 過匯編語言編程對系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。這一階段系統(tǒng)的主要特點(diǎn) 是:系統(tǒng)結(jié)構(gòu)和功能都相對單一,處理效率較低,存儲器容量較小,幾乎沒有用戶接口。 由于這種嵌入式系統(tǒng)使用簡便、價格低廉,以前在國內(nèi)工業(yè)領(lǐng)域應(yīng)用較為普遍,但是已 經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)高效的、需要大容量存儲介質(zhì)的現(xiàn)代化工業(yè)控制和新興的信息家電等領(lǐng) 域的需求。 ( 2 ) 簡單監(jiān)控式的實(shí)時操作系統(tǒng)階段:以嵌入式c p u 為基礎(chǔ)、以專用簡單操作系 統(tǒng)為核心的嵌入式系統(tǒng)【9 】。這一階段的嵌入式系統(tǒng)c p u 種類繁多,通用性比較弱、系統(tǒng) 開銷小,效率高。操作系統(tǒng)具有一定的兼容性和擴(kuò)展性,應(yīng)用軟件較專業(yè),用戶界面不 夠友好,系統(tǒng)主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。 ( 3 ) 通用的嵌入式實(shí)時操作系統(tǒng)階段:以通用的嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系 統(tǒng),如v x w o r k s 、p s o s 、w i n d o w sc e 等。這一階段系統(tǒng)的主要特點(diǎn)是:能運(yùn)行在各種 不同的微處理器上:具有強(qiáng)大的通用操作系統(tǒng)的功能,如具備了文件和目錄管理、多任 務(wù)管理、設(shè)備驅(qū)動支持、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有豐富的a p i 和 嵌入式應(yīng)用軟件。 ( 4 ) 以i n t e m e t 為標(biāo)志的嵌入式系統(tǒng):隨著通用型嵌入式實(shí)時操作系統(tǒng)的發(fā)展,面 向i n t e m e t 網(wǎng)絡(luò)和特定應(yīng)用的嵌入式操作系統(tǒng)正日益引起人們的重視,成為重要的發(fā)展 方向。嵌入式系統(tǒng)與i n t e m e t 的真正結(jié)合、嵌入式操作系統(tǒng)與應(yīng)用設(shè)備的無縫結(jié)合代表 著嵌入式操作系統(tǒng)發(fā)展的未來。 1 2 嵌入式系統(tǒng)的主要特點(diǎn) 嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件和嵌入式軟件系統(tǒng)構(gòu)成,是集軟硬 件于一體的可獨(dú)立工作的系統(tǒng)。嵌入式處理器可以是一個單片機(jī)或一個微控$ 1 j i 器( m c l r ) , 隨著電子技術(shù)的發(fā)展,一些高性能3 2 位處理器,如a r m 處理器等也正被逐步的應(yīng)用到 嵌入式領(lǐng)域中。相關(guān)支撐硬件包括顯示卡、存儲介質(zhì)( r o m 和r a m 等) 、通訊設(shè)備、i c 卡或信用卡的讀取設(shè)備等。嵌入式軟件包括與硬件相關(guān)的底層驅(qū)動、操作系統(tǒng)、圖形界 面、通訊協(xié)議、數(shù)據(jù)庫系統(tǒng)、標(biāo)準(zhǔn)化瀏覽器和應(yīng)用軟件等。 嵌入式系統(tǒng)應(yīng)用前景廣闊,可應(yīng)用于人類工作與生活的各個領(lǐng)域,如智能工控設(shè)備、 i c 卡、機(jī)頂盒、數(shù)字電視、w e b t v 等眾多消費(fèi)類和醫(yī)療保健類電子設(shè)備。此外,還有 各類的多媒體手機(jī)、袖珍電腦、掌上電腦、車載導(dǎo)航器等??傊?,在生活里隨處都能看 到嵌入式系統(tǒng)的影子,嵌入式系統(tǒng)已經(jīng)深入到我們生活的方方面面,人們把嵌入式設(shè)各 2 桂林工學(xué)院碩士學(xué)位論文 被廣泛使用的時代稱為“后p c 時代”。 嵌入式系統(tǒng)誕生于微型機(jī)時代,其核心硬件處理器的發(fā)展也經(jīng)歷了三個階段: s c m 階段、m c u 階段、s o c 階段。 s c m ( s i n g l ec h i pm i c r o c o m p u t e r ) 即單片微型計(jì)算機(jī)階段,主要是尋求最佳的單片 形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu),它與通用計(jì)算機(jī)朝著完全不同的道路發(fā)展。 m c u ( m i c r oc o n t r o l l e ru n i t ) 即微控制器階段,通過不斷擴(kuò)展來滿足嵌入式對象系 統(tǒng)要求的各種外圍電路與接口電路的應(yīng)用,加強(qiáng)對對象的智能化控制能力。在發(fā)展m c u 方面,最著名的廠家當(dāng)數(shù)p h i l i p s 公司,它將m c s 5 1 從單片微型計(jì)算機(jī)迅速發(fā)展到了微 控制器。 s o c ( s y s t e mo nc h i p ) 即片上系統(tǒng)階段。隨著半導(dǎo)體工藝技術(shù)的發(fā)展,i c 設(shè)計(jì)者能 夠?qū)⒂鷣碛鷱?fù)雜的功能集成到單硅片上,s o c 正是在集成電路( i c ) 向集成系統(tǒng)( i s ) 轉(zhuǎn)變的大方向下產(chǎn)生的。單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向m c u 階段發(fā)展的重 要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決,而專用單片機(jī)的發(fā)展自然形成了s o c 化趨勢。 、 嵌入式系統(tǒng)是基于計(jì)算機(jī)技術(shù)的,但從前面對嵌入式系統(tǒng)的定義可以知道,嵌入式 系統(tǒng)與通用的計(jì)算機(jī)系統(tǒng)又是不同的,它與通用計(jì)算機(jī)相比具有以下的幾個特點(diǎn): ( 1 ) 嵌入式系統(tǒng)與通用計(jì)算機(jī)系統(tǒng)最大的不同是它面向特定的應(yīng)用對象,為特定用 戶群設(shè)計(jì)的,針對性強(qiáng),具有低功耗、體積小、集成度高等特點(diǎn),能夠把通用c p u 結(jié)構(gòu) 的系統(tǒng)中許多由板卡來完成的功能集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小 型化,移動能力大大增強(qiáng)。 ( 2 ) 嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)以及電子技術(shù)與各個行業(yè)的具 體應(yīng)用相結(jié)合后的產(chǎn)物,這一點(diǎn)就決定了它必然是一個技術(shù)密集、資金密集、高度分散、 不斷創(chuàng)新的知識集成系統(tǒng)。 ( 3 ) 嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭在 同樣的硅片面積上實(shí)現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭 力。 ( 4 ) 為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯 片或單片機(jī)本身中,它的升級換代也是和具體產(chǎn)品同步進(jìn)行,因此嵌入式系統(tǒng)產(chǎn)品一旦 進(jìn)入市場,具有較長的生命周期。 ( 5 ) 嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,產(chǎn)品的開發(fā)需要借助其它的平臺來進(jìn)行 開發(fā),如采用宿主目標(biāo)機(jī)的方式等,通過宿主機(jī)生成目標(biāo)機(jī)能運(yùn)行的代碼,然后再 桂林工學(xué)院碩士學(xué)位論文 把它固化到目標(biāo)機(jī)中,這樣產(chǎn)品在銷售以后用戶通常也足不能對其中的程序功能進(jìn)行修 改的。 1 3 嵌入式操作系統(tǒng) 作為嵌入式系統(tǒng)靈魂的嵌入式操作系統(tǒng)是隨著嵌入式系統(tǒng)的發(fā)展而出現(xiàn)的,是嵌入 式系統(tǒng)發(fā)展到一定階段的產(chǎn)物。為了面對越來越復(fù)雜的應(yīng)用,提高系統(tǒng)的可靠性、提高 產(chǎn)品的開發(fā)效率和縮短產(chǎn)品的開發(fā)周期,越來越多的嵌入式產(chǎn)品廠家都在其產(chǎn)品中加入 了操作系統(tǒng)。嵌入式操作系統(tǒng)的使用能為嵌入式系統(tǒng)的開發(fā)減少工作量,增強(qiáng)嵌入式系 統(tǒng)的可移植性和適應(yīng)性。在一些控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)不能崩潰, 當(dāng)出現(xiàn)小錯誤的時候要有自愈能力,這不僅要求在硬件設(shè)計(jì)方面提高系統(tǒng)的可靠性和抗 干擾性,而且也應(yīng)在軟件設(shè)計(jì)方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可 靠的隱患,這往往需要使用嵌入式操作系統(tǒng)。那些采用前后方式設(shè)計(jì)的嵌入式系統(tǒng)在遇 到強(qiáng)干擾時,容易產(chǎn)生異常、出錯、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。如果有操 作系統(tǒng),則可以通過操作系統(tǒng)運(yùn)行的系統(tǒng)監(jiān)控進(jìn)程對其進(jìn)行修復(fù),采取一些利于系統(tǒng)穩(wěn) 定、可靠的措施,如把有問題的任務(wù)清除掉,使系統(tǒng)重新恢復(fù)正常。而且在有嵌入式操 作系統(tǒng)支持的環(huán)境下開發(fā)應(yīng)用程序,能夠把一個復(fù)雜的應(yīng)用程序,按照軟件工程中的解 耦原則將整個應(yīng)用分解為多個任務(wù)模塊,這樣。每個任務(wù)模塊的調(diào)試、修改幾乎都不影 響其他模塊,開發(fā)人員就可以對幾個模塊同時進(jìn)行開發(fā),提高產(chǎn)品開發(fā)的速度。 與w i n d o w s 和桌面l i n u x 等p c 操作系統(tǒng)不同,嵌入式操作系統(tǒng)既有普通操作系統(tǒng) 的特點(diǎn),如負(fù)責(zé)整個系統(tǒng)的軟件和硬件資源的分配、對任務(wù)進(jìn)行調(diào)度、管理外設(shè)等,同 時它運(yùn)行的環(huán)境不同于臺式機(jī),如沒有很大的硬盤,通常只有少數(shù)的f l a s h 、e p r o m 等來 存放程序和數(shù)據(jù),系統(tǒng)的各種應(yīng)用程序和功能都是事先確定的等,使得嵌入式操作系統(tǒng) 有著自身的特點(diǎn):小巧和可定制性。由于嵌入式系統(tǒng)上硬件資源的限制,因此嵌入式 操作系統(tǒng)必須設(shè)計(jì)得小巧緊湊,同時要能夠滿足不同用戶的要求,能夠根據(jù)不同的用戶 進(jìn)行定制,去掉用戶不需要的功能模塊,以節(jié)省資源。實(shí)時性。通用操作系統(tǒng)追求的 是軟硬件資源的最大利用率,而嵌入式操作系統(tǒng)則不同,嵌入式系統(tǒng)多是對一些設(shè)備進(jìn) 行監(jiān)測和控制,如,航天飛機(jī)的方向調(diào)節(jié)系統(tǒng)、導(dǎo)彈導(dǎo)航系統(tǒng)、核反應(yīng)堆控制系統(tǒng)等, 對這些設(shè)備的控制不僅要求程序邏輯上正確,而且在時間上也必須滿足要求,如果不能 在系統(tǒng)規(guī)定的時限內(nèi)完成任務(wù),就會造成嚴(yán)重的后果,這要求嵌入式系統(tǒng)有實(shí)時性的功 能。能夠固化。在嵌入式系統(tǒng)里,應(yīng)用軟件和操作系統(tǒng)都是被固化在e p r o m 或f l a s h 等存儲器里面的,而像硬盤這樣的輔助存儲器基本上不用。穩(wěn)定性和弱交互性1 2 1 。很 多嵌入式系統(tǒng)都用在些性命攸關(guān)的設(shè)備上,因此其穩(wěn)定性是至關(guān)重要的,不允許系統(tǒng) 在運(yùn)行過程中出現(xiàn)什么故障。同時,嵌入式系統(tǒng)運(yùn)行起來后也不再需要人進(jìn)行干預(yù),因 4 桂林工學(xué)院碩士學(xué)位論文 此不需要很強(qiáng)的交互性。 在嵌入式操作系統(tǒng)領(lǐng)域,到了2 0 世紀(jì)8 0 年代呈現(xiàn)出種百家爭鳴的局面,大量的 商用系統(tǒng)相繼問世,如p s o s ,v x w o r k s ,p a l mo s ,w i n d o w sc e ,q n x 等,它們作為商用 的操作系統(tǒng)具有良好的性能。 p s o s :是美國加州的集成系統(tǒng)公司( i n t e g r a t e ds y s t e m si n c ) 推出的實(shí)時操作系 統(tǒng),它專門為嵌入式微處理器而設(shè)計(jì),能提供多任務(wù)處理環(huán)境,穩(wěn)定性好,而且使用方 便,模塊化的體系結(jié)構(gòu)使得系統(tǒng)具有很高的可擴(kuò)展性,可以根據(jù)不同的應(yīng)用需求來定制 操作系統(tǒng)的功能和需要的內(nèi)存。整個系統(tǒng)分為內(nèi)核層、系統(tǒng)服務(wù)層、用戶層,由內(nèi)核層 負(fù)責(zé)任務(wù)的管理和調(diào)度、任務(wù)間的通信、內(nèi)存管理、實(shí)鐘管理、中斷服務(wù)等。系統(tǒng)服務(wù) 層包括p n a + 、p i 猙c + 、p h i l e + 等組件,p n a + 實(shí)現(xiàn)了完整的基于流的t c p i p 協(xié)議集, p r p c + 提供了遠(yuǎn)程調(diào)用庫,支持用戶建立一個分布式應(yīng)用系統(tǒng),p h i l e + 提供了文件系統(tǒng) 管理和對塊存儲設(shè)備的管理。用戶層指的是用戶編寫的應(yīng)用程序,它們以任務(wù)的形式出 現(xiàn)。p s o s 在手機(jī)等設(shè)備中應(yīng)用比較廣泛。 p a l m0 s = 是由3 c o m 公司開發(fā)的嵌入式操作系統(tǒng),在p d a 市場上占有很大的市場份 額,它提供了串行通信接口和紅外線傳輸接口,可以方便地與其它外部設(shè)備通信、傳輸 數(shù)據(jù),利用p a l m 0 s 提供的應(yīng)用程序接口,開發(fā)商可根據(jù)需要自行開發(fā)所需的應(yīng)用程序, 目前大約有數(shù)千種專為p a l m0 s 編寫的應(yīng)用程序,小到游戲,大到行業(yè)解決方案,p a l m0 s 無所不包。 w i n d o w sc e :是m i c r o s o f t 公司開發(fā)的一個開放的、可升級的3 2 位嵌入式操作系統(tǒng)。 它是從整體上為有限資源的平臺設(shè)計(jì)的多線程、基于優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng),其模 塊化設(shè)計(jì)使得它可方便的進(jìn)行移植,該操作系統(tǒng)的基本內(nèi)核需要至少2 0 0 k 的r o m 。 w i n d o w sc e 具有模塊化及可伸縮性,實(shí)時性能好,通信能力強(qiáng)大,支持多種c p u ,它的 設(shè)計(jì)可以滿足多種設(shè)備的需要,包括工業(yè)控制器、通信集線器以及銷售終端之類的企業(yè) 設(shè)備,還有照相機(jī)、電話和家用娛樂器材之類的消費(fèi)產(chǎn)品。 1 4 課題背景 傳統(tǒng)嵌入式系統(tǒng)的開發(fā),通常都是針對某應(yīng)用,畫程序流程圖,然后編制應(yīng)用程 序,一般稱這種程序?yàn)榫€性程序,采用這種方式來開發(fā)系統(tǒng),軟件和硬件的調(diào)試幾乎占 了系統(tǒng)開發(fā)的大部分時間,當(dāng)程序產(chǎn)生錯誤或系統(tǒng)受到干擾時,只能通過看門狗復(fù)位系 統(tǒng),這嚴(yán)重的影響了系統(tǒng)的穩(wěn)定性和程序的可讀性。隨著系統(tǒng)資源的增加和應(yīng)用程序越 來越復(fù)雜,采用線性程序設(shè)計(jì)的方法難以滿足應(yīng)用的要求。而在產(chǎn)品的開發(fā)中采用支持 多任務(wù)的嵌入式操作系統(tǒng),能夠?yàn)殚_發(fā)提供一個穩(wěn)定的平臺,從而使得開發(fā)者能把精力 集中到提高系統(tǒng)的性能上?;诓僮飨到y(tǒng)的編程能使應(yīng)用程序更便于移植,提高軟件的 5 桂林工學(xué)院碩士學(xué)位論文 司復(fù)用性。 微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)是相對于傳統(tǒng)的宏內(nèi)核結(jié)構(gòu)即單內(nèi)核結(jié)構(gòu)來說的,采用宏內(nèi) 核結(jié)構(gòu)設(shè)計(jì)的操作系統(tǒng),整個系統(tǒng)是一個運(yùn)行在核心念的大進(jìn)程,包括了進(jìn)程管理、內(nèi) 存管理、文件系統(tǒng)以及其它的功能,模塊闖的通信通過直接調(diào)用其它模塊中的函數(shù)來實(shí) 現(xiàn),而不是消息傳遞。微內(nèi)核的設(shè)計(jì)思想是只把系統(tǒng)最關(guān)鍵的功能,如進(jìn)程調(diào)度、時鐘 管理、中斷管理等在內(nèi)核中實(shí)現(xiàn),其它的功能如i o 管理、文件管理等放到內(nèi)核之外, 作為獨(dú)立的服務(wù)進(jìn)程來實(shí)現(xiàn)。進(jìn)程間通過消息來進(jìn)行通信,而內(nèi)核就是一個消息的轉(zhuǎn)發(fā) 站,比如,系統(tǒng)調(diào)用模塊要給文件系統(tǒng)管理模塊發(fā)消息時,消息就通過內(nèi)核來進(jìn)行轉(zhuǎn)發(fā)。 采用這種結(jié)構(gòu)設(shè)計(jì)的內(nèi)核,能夠?qū)崿F(xiàn)模塊間的隔離,在不影響其它模塊的情況下可以方 便的用個新的實(shí)現(xiàn)來替代原來的模塊,這樣整個系統(tǒng)方便靈活,又能保證內(nèi)核微小, 便于移植。 1 5 論文所做的工作及論文的結(jié)構(gòu) 本文首先介紹了嵌入式系統(tǒng)以及嵌入式操作系統(tǒng)的歷史、現(xiàn)狀和發(fā)展前景,分析和 比較了目前比較流行并且代碼公開的幾款嵌入式操作系統(tǒng),通過對這些系統(tǒng)的分析和研 究,筆者對操作系統(tǒng)的理論及設(shè)計(jì)方法有了更深刻的理解,吸取了它們的優(yōu)秀之處,運(yùn) 用所學(xué)的操作系統(tǒng)知識結(jié)合微內(nèi)核思想,設(shè)計(jì)開發(fā)了一個小型的嵌入式操作系統(tǒng)。系統(tǒng) 采用模塊化的設(shè)計(jì)方法,分為任務(wù)管理、任務(wù)間通信、時間管理、中斷管理、內(nèi)存管理 等多個模塊,并給出了各模塊的詳細(xì)設(shè)計(jì)。 嵌入式操作系統(tǒng)的設(shè)計(jì)要求丌發(fā)人員對底層的硬件有較深的了解,特別是編寫與硬 件相關(guān)部分的代碼時更是如此。本系統(tǒng)在設(shè)計(jì)的時候就考慮了系統(tǒng)的移植性問題,為了 便于移植,那些硬件無關(guān)部分的代碼都采用c 語言來編寫,而與底層硬件相關(guān)部分的代 碼用匯編語言來編寫,這樣在移植的時候,只要修改或重新編寫這部分代碼即可。全文 分為5 章,其內(nèi)容安排如下: 第1 章緒論。簡單的介紹了嵌入式系統(tǒng)的發(fā)展歷史,課題來源、背景和研究意義, 以及論文的主要內(nèi)容及章節(jié)安排。 第2 章微內(nèi)核體系結(jié)構(gòu)的研究。對微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)進(jìn)行了深入的分析和研 究,包括任務(wù)的劃分、任務(wù)的調(diào)度、任務(wù)間的通信以及優(yōu)先級反轉(zhuǎn)問題的處理等。 第3 章操作系統(tǒng)內(nèi)核的設(shè)計(jì)。采用模塊化的設(shè)計(jì)方法對操作系統(tǒng)的各功能模塊進(jìn)行 了詳細(xì)的設(shè)計(jì),完成了一個微內(nèi)核結(jié)構(gòu)的嵌入式操作系統(tǒng)內(nèi)核。 第4 章系統(tǒng)在a r m 平臺上的實(shí)現(xiàn)。最后給出了系統(tǒng)在a r m 硬件平臺上的實(shí)現(xiàn), 為系統(tǒng)在其它平臺上的運(yùn)行提供了一個參考。 第5 章總結(jié)與展望。對本文的工作進(jìn)行了總結(jié)并展望下一步的研究工作。 6 第2 章微內(nèi)核體系結(jié)構(gòu)的研究 2 1 操作系統(tǒng)體系結(jié)構(gòu)的發(fā)展 嵌入式操作系統(tǒng)e o s ( e m b e d d e do p e r a t i n gs y s t e m ) 是嵌入式系統(tǒng)中的靈魂,是為嵌 入式系統(tǒng)特別設(shè)計(jì)的一段代碼,也可稱為系統(tǒng)的內(nèi)核,它具有非常高的可靠性,負(fù)責(zé)管 理系統(tǒng)的任務(wù)、中斷、時鐘、i o 、設(shè)備等各種資源,能根據(jù)不同的調(diào)度策略為各任務(wù)合 理的分配c p u 時間,通過為用戶提供a p i 接口的方式,方便用戶應(yīng)用程序的編寫?;?于操作系統(tǒng)的嵌入式軟件開發(fā),在設(shè)計(jì)某個任務(wù)的時候可不必關(guān)心其它任務(wù)的狀態(tài),任 務(wù)之間的通信和同步都由操作系統(tǒng)來完成。優(yōu)秀的操作系統(tǒng)通過采用各種調(diào)度算法和調(diào) 度策略來提高系統(tǒng)的性能,保證系統(tǒng)行為的可預(yù)知性。 操作系統(tǒng)內(nèi)核是操作系統(tǒng)最核心最基礎(chǔ)的部分,其結(jié)構(gòu)往往對操作系統(tǒng)的外部特性 以及應(yīng)用領(lǐng)域有著一定程度的影響。操作系統(tǒng)按內(nèi)核的結(jié)構(gòu)來分大致可以把內(nèi)核分為單 內(nèi)核( m o n o l i t h i ck e r n e l ) 、微內(nèi)核( m i c r ok e r n e l ) 兩種。單內(nèi)核結(jié)構(gòu)是操作系統(tǒng)中各核心模塊 ( 任務(wù)調(diào)度、文件管理、內(nèi)存管理、i o 管理等) 雜然混居的形態(tài),該結(jié)構(gòu)產(chǎn)生于1 9 6 0 年代,歷史最長,是操作系統(tǒng)內(nèi)核與外圍分離前的最初形態(tài),很多的操作系統(tǒng)采用的都 是這種結(jié)構(gòu)方式,如u n i x 、l i n u x 、w i n d o w s 等。隨著操作系統(tǒng)體系結(jié)構(gòu)理論和實(shí)踐的 不斷演進(jìn)和發(fā)展,操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合度日趨縮小,逐漸把結(jié)構(gòu)性 部件與功能性部件分離開來,到1 9 8 0 年代就出現(xiàn)了微內(nèi)核結(jié)構(gòu)。微內(nèi)核是內(nèi)核的精簡版 本,只提供操作系統(tǒng)的核心功能,如,任務(wù)調(diào)度、時鐘管理、中斷管理、信號量管理等, 把其它功能以系統(tǒng)服務(wù)器的方式提供給用戶( 如文件管理、網(wǎng)絡(luò)支持等) ,用戶可以根據(jù) 需要對其進(jìn)行裁減。采用微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)占用的內(nèi)存小,可移植性強(qiáng),同時提供 模塊化的設(shè)計(jì),能方便用戶安裝不同的接口,更好的滿足各類用戶群體的要求。傳統(tǒng)單 內(nèi)核操作系統(tǒng)和微內(nèi)核操作系統(tǒng)的結(jié)構(gòu)分別如下圖2 1 和圖2 2 所示: 圖2 1 單內(nèi)核操作系統(tǒng)結(jié)構(gòu) 7 圖2 2 微內(nèi)核操作系統(tǒng)結(jié)構(gòu) 桂林工學(xué)院碩士學(xué)位論文 在操作系統(tǒng)結(jié)構(gòu)的發(fā)展中,還有過一種分層結(jié)構(gòu)的內(nèi)核p 】,但是分層結(jié)構(gòu)的內(nèi)核存 在很多的問題,因?yàn)樵诜謱咏Y(jié)構(gòu)的內(nèi)核中每一層提供的功能相當(dāng)多,相鄰層之、日j 相互影 響,如果一層的功能發(fā)生了變化那么與它相連的層將很難修改,在嵌入式系統(tǒng)中這種結(jié) 構(gòu)很少使用,而微內(nèi)核結(jié)構(gòu)能更好的滿足嵌入式系統(tǒng)應(yīng)用多樣性,存儲空間小的特點(diǎn), 因此越來越多的嵌入式操作系統(tǒng)采用的都是這種內(nèi)核結(jié)構(gòu)。 2 2 微內(nèi)核結(jié)構(gòu)的操作系統(tǒng) 2 2 1 微內(nèi)核結(jié)構(gòu)操作系統(tǒng)的特點(diǎn) 隨著計(jì)算機(jī)體系結(jié)構(gòu)的不斷發(fā)展和變化,用戶的需求也不斷的擴(kuò)大,操作系統(tǒng)必須 具有很好的可移植性、可擴(kuò)充性、可靠性、適應(yīng)性、兼容性以及很高的效率等特點(diǎn)才能 滿足各種應(yīng)用要求,而傳統(tǒng)的單內(nèi)核結(jié)構(gòu)操作系統(tǒng)隨著系統(tǒng)功能的增加使得整個內(nèi)核變 得越來越龐大、混亂,因此,后來就有人提出了微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)。 微內(nèi)核設(shè)計(jì)與單內(nèi)核設(shè)計(jì)不同,其基本思想是將原來屬于傳統(tǒng)操作系統(tǒng)內(nèi)核的一些 功能和服務(wù)從內(nèi)核中分出,以子系統(tǒng)的形式與內(nèi)核或其它子系統(tǒng)相互作用,組件功能以 服務(wù)進(jìn)程的方式通過消息與微內(nèi)核和其它組件相互通信來完成。微內(nèi)核的主要功能就是 消息交換:確認(rèn)消息、在組件問傳送消息以及對硬件的操作等。微內(nèi)核通常只保留進(jìn)程 間通信( i p c ) 、進(jìn)程調(diào)度、時鐘管理等幾項(xiàng)最基本、最簡單的功能,而將諸如文件管理等 其它傳統(tǒng)操作系統(tǒng)服務(wù)作為用戶層的服務(wù)進(jìn)程駐留在微內(nèi)核外。它依據(jù)客戶一服務(wù)者模型 的概念,把所有其它的操作系統(tǒng)功能都變成用戶態(tài)的服務(wù)器,而用戶進(jìn)程則被當(dāng)作客戶。 客戶要用到操作系統(tǒng)時,其實(shí)就是通過微內(nèi)核與服務(wù)器進(jìn)程通信而已。微內(nèi)核僅僅作為一 個傳遞消息的工具,驗(yàn)證消息的有效性,在客戶和服務(wù)器之間傳遞消息,并核準(zhǔn)對硬件的 存取。微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)與單內(nèi)核結(jié)構(gòu)的操作系統(tǒng)相比具有以下特點(diǎn): ( 1 ) 功能單一、體積小巧,可用于對實(shí)時性有要求的場合,同時那些與處理器相關(guān)的硬件 方面的細(xì)節(jié)都包含在內(nèi)核中來處理,便于系統(tǒng)在不同平臺之間移植。 ( 2 ) 具有很高的效率,系統(tǒng)響應(yīng)快,上下文的切換速度高于一般的多任務(wù)系統(tǒng),這樣可以在 低速的c p u 上完成復(fù)雜的搶占式實(shí)時多任務(wù)功能。 ( 3 ) 微內(nèi)核采用客戶一服務(wù)器的工作方式,如果要擴(kuò)展系統(tǒng)的功能,只需要增加一個服務(wù) 器即可,使得系統(tǒng)更易于擴(kuò)展。 ( 4 ) 微內(nèi)核各服務(wù)器模塊都是相互獨(dú)立的,通信只是通過消息機(jī)制來進(jìn)行,一個模塊的出 錯不會導(dǎo)致整個系統(tǒng)的崩潰,提高了系統(tǒng)的穩(wěn)定性。 ( 5 ) 微內(nèi)核系統(tǒng)和運(yùn)行在其上的應(yīng)用軟件一般都固化在存儲器芯片或單片機(jī)本身中,可靠 s 性高,而且微內(nèi)核系統(tǒng)本身一般不具備自舉丌發(fā)能力,在設(shè)計(jì)完成以后用戶通常也是不 能對其中的程序功能進(jìn)行修改的,必須有一套丌發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。 微內(nèi)核的特點(diǎn)決定了其固有的模塊化特性,而模塊化反過來又為微內(nèi)核操作系統(tǒng)提 供了許多優(yōu)良的特性,包括容易維護(hù)、修改方便、可移植性強(qiáng)、操作靈活、支持多處理 器、易于實(shí)現(xiàn)分布式系統(tǒng)等功能。但微內(nèi)核結(jié)構(gòu)在帶來操作系統(tǒng)高度靈活性和擴(kuò)展性的 同時,也使得操作系統(tǒng)的整體性能有所降低,因此必須對微內(nèi)核結(jié)構(gòu)系統(tǒng)的一些模塊設(shè) 計(jì)進(jìn)行改迸,使其在性能上能更好的提高。 2 2 - 2 微內(nèi)核結(jié)構(gòu)操作系統(tǒng)的不足及改進(jìn)方法 微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)較傳統(tǒng)單內(nèi)核結(jié)構(gòu)操作系統(tǒng)更具靈活性和可擴(kuò)展性,但在性 能上也有所下降,因?yàn)樵谖?nèi)核結(jié)構(gòu)中只保留了進(jìn)程管理、進(jìn)程調(diào)度等幾項(xiàng)最基本的功 能,其它的功能都是以內(nèi)核服務(wù)進(jìn)程的形式放在內(nèi)核之外。這樣,應(yīng)用程序要獲得內(nèi)核 的服務(wù)就必須先發(fā)消息給內(nèi)核,然后內(nèi)核再發(fā)消息給服務(wù)進(jìn)程,執(zhí)行得的結(jié)果按相反的 順序返回給調(diào)用的應(yīng)用程序?;谙C(jī)制的體系結(jié)構(gòu)導(dǎo)致了頻繁的進(jìn)程切換和消息數(shù) 據(jù)的拷貝,從而增加了系統(tǒng)的額外開銷。應(yīng)用程序申請內(nèi)核服務(wù)的過程可用圖2 3 表示。 圖2 。3 任務(wù)與內(nèi)核服務(wù)的消息傳遞 采用消息的方式在內(nèi)核服務(wù)器模塊間以及內(nèi)核與各服務(wù)器模塊間進(jìn)行消息傳遞,能 使系統(tǒng)的內(nèi)核保持微小的結(jié)構(gòu),滿足嵌入式的應(yīng)用,同時這種結(jié)構(gòu)方式的系統(tǒng)其健壯性 和可擴(kuò)展性也是很高的,要增加系統(tǒng)的功能,只需增加一個新的內(nèi)核服務(wù)程序模塊就行 了,不必修改其它的模塊。同時,如果系統(tǒng)里某一個模塊出了問題也不會影響其它模塊, 因此其可靠性也是很好的。但頻繁的消息傳遞必然會增大系統(tǒng)的開銷,因此,提高微內(nèi) 核結(jié)構(gòu)操作系統(tǒng)性能的一個重要途徑就是對其中的消息結(jié)構(gòu)進(jìn)行改進(jìn)。 2 2 3 微內(nèi)核消息機(jī)制的改進(jìn) 單內(nèi)核結(jié)構(gòu)的操作系統(tǒng),系統(tǒng)各模塊之間可以相互直接調(diào)用,而微內(nèi)核結(jié)構(gòu)的系統(tǒng) 9 桂林工學(xué)院碩士學(xué)位論文 是基于消息機(jī)制的,因而系統(tǒng)各模塊問的消息傳遞對系統(tǒng)的性能有著重要的影響,對消 息機(jī)制的改進(jìn)能夠很好的改善系統(tǒng)的性能。通??梢圆捎孟旅鎯煞N方法來對其進(jìn)行改進(jìn): 減少要傳遞的消息的長度,這樣既能提高消息傳遞的速度又能減少系統(tǒng)的開銷。 如果消息足夠短的話還可以用寄存器來進(jìn)行傳遞,寄存器的速度要比存儲器的速度快。 接受和發(fā)送模塊直接從已為消息分配的緩沖區(qū)中對消息進(jìn)行讀寫,而不必再為要 傳遞的消息分配緩沖區(qū)和把消息移到新分配的緩沖區(qū)| 4 1 。 消息機(jī)制是用于在系統(tǒng)的各模塊間進(jìn)行信息傳遞的,也可以用來改變系統(tǒng)的任務(wù)調(diào) 度策略從而提高系統(tǒng)的實(shí)時性能。當(dāng)?shù)蛢?yōu)先級任務(wù)在使用系統(tǒng)服務(wù)時,如果有比它優(yōu)先 級更高的任務(wù)產(chǎn)生,并需要使用這項(xiàng)服務(wù),則高優(yōu)先級任務(wù)就發(fā)一個請求給這個服務(wù)程 序,服務(wù)程序就提高自己的優(yōu)先級,使低優(yōu)先級的任務(wù)放棄對它的請求,從而高優(yōu)先級 的任務(wù)就能獲得它的服務(wù)。 2 3 采用微內(nèi)核結(jié)構(gòu)的嵌入式操作系統(tǒng) 2 3 1q n x q n x p l l 6 】是q n x 軟件系統(tǒng)公司開發(fā)的一個實(shí)時、可擴(kuò)充的操作系統(tǒng),它遵循 p o s i x 1 ( 程序接口) 和p o s i x 2 ( s h e l l 和工具) 、部分遵循p o s i x i b ( 實(shí)時擴(kuò)展) 。q n x 采 用的是微內(nèi)核結(jié)構(gòu),有地址空問保護(hù)機(jī)制,穩(wěn)定可靠,被業(yè)界公認(rèn)為是在x 8 6 平臺上最 好的嵌入式實(shí)時操作系統(tǒng),目l j i 已被移植到p o w e r p c 、m i p s 、a r m 等內(nèi)核的處理器上。 q n x 的內(nèi)核非常小,只有8 k 。在內(nèi)核中只提供了三項(xiàng)基本的服務(wù):進(jìn)程調(diào)度、進(jìn)程問 通信、多分部消息。q n x 的各進(jìn)程可以投遞自己的請求消息,服務(wù)器在收到請求消息 后根據(jù)請求進(jìn)程優(yōu)先級的高低來安排進(jìn)程的運(yùn)行,而當(dāng)?shù)蛢?yōu)先級的進(jìn)程在使用服務(wù)時, 如果有高優(yōu)先級的進(jìn)程請求消息到來,則低優(yōu)先級進(jìn)程被搶占。內(nèi)核通過三個系統(tǒng)調(diào) 用s e n d 0 、r e c e i v e 0 和r e p l y 0 來實(shí)現(xiàn)進(jìn)程間的相互通信。源進(jìn)程向目標(biāo)進(jìn)程作s e n d 0 調(diào)用 后,它就被阻塞直到目標(biāo)進(jìn)程作了r e c e i v e ( ) 調(diào)用,處理了消息,又作了r e p l y ( ) 調(diào)用之后, 源進(jìn)程才能恢復(fù)執(zhí)行。如果一個執(zhí)行r e c e i v e ( ) 調(diào)用的進(jìn)程并沒有消息懸置著等它,它就 阻塞,直到別的進(jìn)程對它作s e n d ( ) 調(diào)用。由于消息傳遞機(jī)制對發(fā)送者或接收者的阻塞, 它就在進(jìn)行通信的進(jìn)程之間起了同步作用。多分部消息。多分部消息傳輸機(jī)制使得從 一個進(jìn)程傳向另一個進(jìn)程的消息不必在內(nèi)存里占據(jù)單一的、相連的區(qū)域,發(fā)送進(jìn)程和接 收進(jìn)程可以各自指定一個m x 表,在表中指明發(fā)送進(jìn)程和接收進(jìn)程的消息碎片在內(nèi)存中 的位置。 1 0 桂林工學(xué)院碩士學(xué)位論文 2 3 2u c ,0 s u c o si i 是j e a nj l a b r o s s e 設(shè)計(jì)的源代碼公丌的嵌入式實(shí)時操作系統(tǒng),已被廣泛應(yīng) 用到8 位、1 6 位、3 2 位的單片機(jī)上,系統(tǒng)經(jīng)過了非常嚴(yán)格的測試,并且得到了美國航空 管理局的認(rèn)證,可用于與人性命攸關(guān)的系統(tǒng)和飛行器等場合,足見其可靠性和穩(wěn)定性。 系統(tǒng)只提供了一個非常微小的內(nèi)核,負(fù)責(zé)任務(wù)的創(chuàng)建和調(diào)度、任務(wù)間的通信、服務(wù)模塊 間的通信等系統(tǒng)功能,在后續(xù)的版本中,作者又加進(jìn)了內(nèi)存管理模塊和網(wǎng)絡(luò)服務(wù)模塊等。 在調(diào)度策略上,系統(tǒng)采用基于優(yōu)先級的搶占式調(diào)度方式,每個優(yōu)先級對應(yīng)著一個任務(wù), 任務(wù)的優(yōu)先級也可作為任務(wù)的d 號,通過一張任務(wù)就緒表來管理系統(tǒng)中的就緒任務(wù), 調(diào)度速度快,效率高,任務(wù)調(diào)度的時間與當(dāng)前的任務(wù)數(shù)無關(guān),調(diào)度的時間復(fù)雜度為o ( 1 ) 。 2 3 3s m a l ir t o s 5 1 s m a l lr t o s 5 1 【7j 是為5 1 處理器設(shè)計(jì)的一個實(shí)時操作系統(tǒng),其采用的調(diào)度策略與 u c o si i 相似,基于優(yōu)先級和用查表法的方式來確定下一個要運(yùn)行的任務(wù),能很好的滿 足系統(tǒng)的實(shí)時性和任務(wù)調(diào)度的可確定性。系統(tǒng)中通過維護(hù)著一張就緒任務(wù)的就緒表,能 快速的定位到下一個將要被調(diào)用的任務(wù),其時問復(fù)雜度是o ( 1 ) ,比起遍歷就緒任務(wù)隊(duì)列 ( 時間復(fù)雜度o “1 ) ) 性能要優(yōu)越得多,但要付出的代價是就緒表需要占用一定的存儲空 間,是用空間來換取時間的解決方案,但在那些實(shí)時性要求高的嵌入式應(yīng)用系統(tǒng)中,這 樣的開銷是值得的。由于8 0 5 1 的資源少,因此s m a l lr t o s 5 l 在設(shè)計(jì)時就沒有考慮支持 太多的任務(wù),最大有8 個任務(wù)和1 6 個任務(wù)兩種選項(xiàng),根據(jù)具體的需要進(jìn)行配置,可節(jié)省 系統(tǒng)存儲資源。 2 3 4v x w o r k s v x w o r k s 是w i n d r i v e r 公司開發(fā)的嵌入式實(shí)時操作系統(tǒng),具有良好的可靠性和實(shí)時 性,易于裁減,支持p o s i x l 0 0 3 1 b 用戶接口擴(kuò)展,有一套自己的集成開發(fā)環(huán)境t o r n a d o , 在嵌入式實(shí)時操作系統(tǒng)領(lǐng)域占有一席之地,主要用在軍事、航空等領(lǐng)域。系統(tǒng)采用了微 內(nèi)核結(jié)構(gòu),在內(nèi)核中只提供了多任務(wù)環(huán)境、任務(wù)間通信和同步等基本的功能。在調(diào)度機(jī) 制上采用搶占式調(diào)度方式,有從0 到2 5 5 共2 5 6 個優(yōu)先級,任務(wù)在創(chuàng)建的時候被指定一 個優(yōu)先級,并且在任務(wù)運(yùn)行過程中可以動態(tài)的改變優(yōu)先級。在v x w o r k s 上還提供了大量 的服務(wù)功能,包括內(nèi)存管理、t c p i p 協(xié)議棧、網(wǎng)絡(luò)文件系統(tǒng)( n f s ) 、遠(yuǎn)程過程調(diào)用( r p c ) 、 c 語言解釋界面、調(diào)試工具、信號和套接字、y o 管理和文件系統(tǒng)等。v x w o r k s 作為一 個商業(yè)的嵌入式操作系統(tǒng),易于移植,功能強(qiáng)大,有著豐富的資源的良好的售后服務(wù), 但價格昂貴,一般的公司企業(yè)難以承擔(dān),并且不提供源代碼。 桂林工學(xué)院碩士學(xué)位論文 2 4 微內(nèi)核的任務(wù)管理 2 4 1 任務(wù)管理的基本原理 任務(wù)是指可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的運(yùn)行過程,具有動態(tài)性、并行性和 異步性【8 l 。任務(wù)管理是嵌入式操作系統(tǒng)的一項(xiàng)基本功能,也是整個系統(tǒng)里最核心的一部 分,操作系統(tǒng)的性能很大程度上取決于內(nèi)核的任務(wù)調(diào)度機(jī)制。按任務(wù)在運(yùn)行過程中能否 被搶占可把操作系統(tǒng)內(nèi)核分為搶占式內(nèi)核和非搶占式內(nèi)核兩種。搶占式內(nèi)核的系統(tǒng)在運(yùn) 行過程中,高優(yōu)先級的任務(wù)一旦就緒就能剝奪正在執(zhí)行的優(yōu)先級比它低的任務(wù)的c p u 使 用權(quán),采用這種方式能夠保證高優(yōu)先級的任務(wù)得到優(yōu)先的處理,從而提高系統(tǒng)的實(shí)時響 應(yīng)能力,如圖2 4 可搶占內(nèi)核任務(wù)調(diào)度所示。在實(shí)時性要求很高的系統(tǒng)中采用的都是可 搶占式的內(nèi)核?;趦?yōu)先級的非搶占式系統(tǒng),中斷服務(wù)程序可以使一個高優(yōu)先級的任務(wù) 就緒,但高優(yōu)先級的就緒任務(wù)并不馬上搶占低優(yōu)先級任務(wù)的c p u 使用權(quán),中斷完成后仍 返回到被中斷了的低優(yōu)先級的任務(wù),直到低優(yōu)先級任務(wù)主動放棄處理器資源,系統(tǒng)重新 進(jìn)行任務(wù)調(diào)度時那個高優(yōu)先級的任務(wù)才能得到執(zhí)行,如圖2 5 非搶占內(nèi)核任務(wù)調(diào)度所示, 所以其實(shí)時性并沒搶占式系統(tǒng)好,但仍比前后臺方式的要高。 圖2 4 可搶占內(nèi)核任務(wù)調(diào)度圖2 5 非搶占內(nèi)核任務(wù)調(diào)度 可搶占內(nèi)核執(zhí)行的流程為: ( 1 ) 低優(yōu)先級的任務(wù)被中斷服務(wù)程序中斷。 ( 2 ) 中斷服務(wù)程序沒有使比被中斷任務(wù)優(yōu)先級更高的任務(wù)就緒,返回到被中斷了的任 務(wù)。 ( 3 ) 中斷服務(wù)程序使優(yōu)先級比被中斷任務(wù)優(yōu)先級更高的任務(wù)就緒,把被中斷了的任務(wù) 掛起,去執(zhí)行高優(yōu)先級的任務(wù)。 ( 4 ) 高優(yōu)先級的任務(wù)完成,返回到被中斷了的任務(wù)。 高優(yōu)先級的任務(wù)在執(zhí)行時也可能會使更高優(yōu)先級的任務(wù)進(jìn)入就緒狀態(tài),從而產(chǎn)生新 的任務(wù)調(diào)度和任務(wù)切換。 桂林工學(xué)院碩士學(xué)位論文 非搶占內(nèi)核執(zhí)行的流程為: ( 1 ) 任務(wù)被中斷服務(wù)程序中斷,系統(tǒng)轉(zhuǎn)到執(zhí)行中斷服務(wù)程序。 ( 2 ) 中斷服務(wù)程序完成后,返回到被中斷了的任務(wù)。 ( 3 ) 被中斷的任務(wù)執(zhí)行完成,系統(tǒng)重新從就緒的任務(wù)隊(duì)列中選擇一個優(yōu)先級最高的任 務(wù)運(yùn)行。 雖然非搶占式內(nèi)核的性能要比傳統(tǒng)前后臺方式的要好,但其時問響應(yīng)能力仍是任務(wù) 級的,在一些實(shí)時性要求高的場合很不適用。而搶占式的系統(tǒng)內(nèi)核則能達(dá)到中斷級的響 應(yīng)速度。 2 4 2 任務(wù)的劃分 在多任務(wù)系統(tǒng)中,對任務(wù)的管理是操作系統(tǒng)的主要功能之一,系統(tǒng)中的每個任務(wù)通 過時間或事件來進(jìn)行驅(qū)動,操作系統(tǒng)根據(jù)任務(wù)的重要性和對時間要求的嚴(yán)格程度,為任 務(wù)設(shè)定優(yōu)先級,在需要迸行任務(wù)調(diào)度時根據(jù)任務(wù)的優(yōu)先級和系統(tǒng)的調(diào)度策略對系統(tǒng)中的 任務(wù)進(jìn)行仲裁,選擇一個合適的任務(wù)投入運(yùn)行。在微內(nèi)核結(jié)構(gòu)的系統(tǒng)中,任務(wù)是具有一 定功能的程序模塊,如數(shù)據(jù)采集、時鐘顯示、鍵盤輸入等都可以設(shè)計(jì)成一個任務(wù),然而, 在把一個大的應(yīng)用劃分為多個任務(wù)時則很講究,如果所設(shè)計(jì)的單個任務(wù)太大、功能過多, 系統(tǒng)的實(shí)時性就會受到影響。如果任務(wù)劃分得太小,雖然任務(wù)的響應(yīng)速度可以提高,但 任務(wù)切換太頻繁,會加重系統(tǒng)的負(fù)載,使得吞吐量下降

溫馨提示

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

最新文檔

評論

0/150

提交評論