




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、深圳國微技術(shù)有限公司 2005-07-11,實時操作系統(tǒng)(RTOS)培訓(xùn),實時系統(tǒng),概念 實時系統(tǒng)是指在確定的時間內(nèi)完成規(guī)定功能,并能對外部異步事件作出正確響應(yīng)的計算機系統(tǒng) 實時系統(tǒng)分類 硬實時系統(tǒng):結(jié)果遲到產(chǎn)生災(zāi)難性結(jié)果 FIRM 實時系統(tǒng):結(jié)果遲到會產(chǎn)生難以接受的質(zhì)量上的降低 軟實時系統(tǒng):結(jié)果遲到會引起質(zhì)量下降,系統(tǒng)可以自行恢復(fù) 衡量系統(tǒng)實時性的3個指標: 響應(yīng)時間(Response Time) 生存時間(Survival Time) 吞吐量(Throughput),嵌入式系統(tǒng),嵌入式系統(tǒng)通常都是實時系統(tǒng),其特征為 系統(tǒng)的正確性不但依賴于運行邏輯結(jié)果的正確性,而且依賴于得到結(jié)果所花費的時間
2、 系統(tǒng)對于各種外部輸入在預(yù)定時間內(nèi)能得到可以預(yù)測的結(jié)果 嵌入式系統(tǒng)通常使用RTOS,其特征為 在不同的系統(tǒng)負載下,行為可以預(yù)測 支持基于優(yōu)先級的調(diào)度 MEMORY模型對于RTOS的性能十分重要 通常都需要一個時鐘來處理任務(wù)的同步,S-STATIC D-DYNAMIC,比較,嵌入式系統(tǒng)(續(xù)),硬件特性 體積小,集成效率高 面向特定應(yīng)用 低功耗,能在惡劣環(huán)境下工作 軟件特性 軟件的研發(fā)與硬件緊密相關(guān) 軟件代碼要求高效率和高可靠性 軟件一般固化在FLASH或ROM中 應(yīng)用 工業(yè)過程控制 軍事電子設(shè)備和現(xiàn)代武器 網(wǎng)絡(luò)通信設(shè)備 消費電子產(chǎn)品,嵌入式實時系統(tǒng)軟件特征,實時性:反應(yīng)時間要快,按要求的間隔輸出
3、正確時間信號給實時的控制設(shè)備 多任務(wù)并發(fā)性:利用適當(dāng)?shù)牟呗钥刂贫嗳蝿?wù)的執(zhí)行,提高資源的利用效率 有處理異步事件的能力 快速啟動,并有出錯處理和自動復(fù)位功能 嵌入式實時軟件是應(yīng)用程序和操作系統(tǒng)兩種軟件的一體化程序 嵌入式實時軟件的開發(fā)需要獨立的開發(fā)平臺和交叉開發(fā)環(huán)境,主要的嵌入式實時操作系統(tǒng),VxWorks 使用最廣、市場占有率最高的嵌入式實時操作系統(tǒng),美國WindRiver公司產(chǎn)品 VRTX 老牌嵌入式實時操作系統(tǒng) pSOS ISI公司推出,現(xiàn)已被WindRiver公司收購 WinCE Microsoft公司推出,實時性不太好,主要用于掌上系統(tǒng) Palm OS 3Com公司推出,在PDA市場占
4、有很大份額 嵌入式Linux 源代碼免費開放,eCOS是Redhat推出的一款嵌入式LINUX操作系統(tǒng),前后臺系統(tǒng),通常應(yīng)用于不復(fù)雜的小型系統(tǒng) 應(yīng)用程序是一個無限的循環(huán),這部分可以看成后臺行為(background) 中斷服務(wù)程序處理異步事件,這部分可以看成前臺行為(foreground) 后臺也可以叫做任務(wù)級,前臺也叫中斷級,前后臺系統(tǒng)(續(xù)),多任務(wù)系統(tǒng),CPU在許多任務(wù)之間轉(zhuǎn)換、調(diào)度,輪番服務(wù)于一系列任務(wù)中的某一個 優(yōu)點: 使CPU 的利用率得到最大的發(fā)揮 使應(yīng)用程序模塊化 可以將很復(fù)雜的應(yīng)用程序?qū)哟位?應(yīng)用程序 將更容易設(shè)計與維護,RTOS組成,操作系統(tǒng)是硬件與用戶之間的一層系統(tǒng)軟件,
5、負責(zé)管理整個系統(tǒng),同時將硬件細節(jié)與用戶隔離開來為用戶提供一個更容易理解和進行程序設(shè)計的接口操作 系統(tǒng)的質(zhì)量以它的體系結(jié)構(gòu)為基礎(chǔ),確保系統(tǒng)的性能、可靠性、靈活性、可移植性、可擴展性等,同時定義了硬件與軟件的界面,操作系統(tǒng)內(nèi)部各構(gòu)件的組織關(guān)系系統(tǒng)與用戶的接口 RTOS資源分配必須考慮到實時性要求 合理分配優(yōu)先級 支持優(yōu)先級搶占 提供任務(wù)同步和互斥 支持不同任務(wù)之間的數(shù)據(jù)共享 支持外部事件(中斷)響應(yīng) 系統(tǒng)可剪裁,由于資源限制,所采用的操作系統(tǒng)應(yīng)該有極強的針對性,因此操作系統(tǒng)功能夠用即可 易于擴展,由于嵌入式設(shè)備的功能多樣化,要求嵌入式操作系統(tǒng)除提供基本的內(nèi)核支持外,還需提供越來越多的可擴展功能模塊
6、(含用戶擴展),如:針對特有應(yīng)用提供的協(xié)議支持、協(xié)議擴展,功耗控制等等,RTOS組成(續(xù)),HAL,RTOS 基本內(nèi)核 線程線程管理 時鐘管理 中斷設(shè)備驅(qū)動管理 通信管理 存儲管理,RTOS擴展內(nèi)核 接口協(xié)議管理 其它,API,RTOS組成(續(xù)),基本內(nèi)核:嵌入式RTOS 中最核心最基礎(chǔ)的部分 任務(wù)(線程/線程)管理:負責(zé)系統(tǒng)中任務(wù)狀態(tài)的變遷 中斷(包括時鐘中斷)管理:開關(guān)中斷,完成現(xiàn)場切換和保持 任務(wù)(線程/線程)通信管理:信號量、事件、消息隊列等 存儲管理:分配存儲器空間 擴展內(nèi)核:為方便用戶使用而對RTOS 進行的擴展 根據(jù)具體應(yīng)用不同所做的擴展不同 CAM應(yīng)用中表現(xiàn)為對CI接口協(xié)議進行
7、管理 設(shè)備驅(qū)動程序接口:RTOS 內(nèi)核與外部硬件之間的一個硬件抽象層 定義軟件與硬件的界限,方便RTOS 的移植升級 應(yīng)用編程接口:建立在RTOS 編程接口之上的面向應(yīng)用領(lǐng)域的編程接口 方便用戶編寫特定領(lǐng)域的嵌入式應(yīng)用程序,RTS的響應(yīng)時間,及時性是實時系統(tǒng)最為重要的特性 設(shè)計者應(yīng)該能預(yù)測實時系統(tǒng)的行為 同步任務(wù)由時鐘來同步 異步事件通常由中斷驅(qū)動,一個多任務(wù)RTOS的事例,Resource allocation P(s2); P(s1) ; 從緩沖區(qū)取產(chǎn)品; 送產(chǎn)品到緩沖區(qū); V(s1); V(s2); 消費產(chǎn)品; ; ;,S1初值為1,S2初值為0,多個緩沖區(qū)的生產(chǎn)者和消費者,P:i =
8、0;while (true) 生產(chǎn)產(chǎn)品; P(S1); 往Buffer i放產(chǎn)品; V(S2); i = (i+1) % n; ;,Q: j = 0; while (true) P(S2); 從Bufferj取產(chǎn)品; V(S1); 消費產(chǎn)品; j = (j+1) % n; ;,S1初值為n,S2初值為0,Q: j = 0; while (true) P(S2); P(mutex2); 從Bufferj取產(chǎn)品; V(mutex2); V(S1); 消費產(chǎn)品; j = (j+1) % n; ;,n個緩沖區(qū)、m個生產(chǎn)者和k個消費者,P:i = 0;while (true) 生產(chǎn)產(chǎn)品; P(S1);
9、P(mutex1); 往Buffer i放產(chǎn)品; V(mutex1); V(S2); i = (i+1) % n; ;,錯誤,S1初值為n,S2初值為0,線程數(shù)為m,線程數(shù)為k,Q: j = 0; while (true) P(S2); P(mutex2); 從Bufferj取產(chǎn)品; j = (j+1) % n; V(mutex2); V(S1); 消費產(chǎn)品; ;,n個緩沖區(qū)、m個生產(chǎn)者和k個消費者,P:i = 0;while (true) 生產(chǎn)產(chǎn)品; P(S1); P(mutex1); 往Buffer i放產(chǎn)品; i = (i+1) % n; V(mutex1); V(S2); ;,正確,S
10、1初值為n,S2初值為0,線程數(shù)為m,線程數(shù)為k,1) 信號量的物理含義: S0表示有S個資源可用 S=0表示無資源可用 S0則| S |表示S等待隊列中的線程個數(shù) P(S):表示申請一個資源 V(S):表示釋放一個資源。信號量的初值應(yīng)該大于等于0,信號量及P、V操作討論,2) P.V操作必須成對出現(xiàn),有一個P操作就一定有一個V操作 當(dāng)為互斥操作時,它們同處于同一線程 當(dāng)為同步操作時,則不在同一線程中出現(xiàn) 如果P(S1)和P(S2)兩個操作在一起,那么P操作的順序至關(guān)重要,一個同步P操作與一個互斥P操作在一起時同步P操作在互斥P操作前 而兩個V操作無關(guān)緊要,信號量及P、V操作討論(續(xù)1),3)
11、P.V操作的優(yōu)缺點 優(yōu)點: 簡單,而且表達能力強(用P.V操作可解決任何同步互斥問題) 缺點: 不夠安全;P.V操作使用不當(dāng)會出現(xiàn)死鎖;遇到復(fù)雜同步互斥問題時實現(xiàn)復(fù)雜,信號量及P、V操作討論(續(xù)2),【思考題】,1.用P.V操作解決下圖之同步問題:,get,copy,put,f,s,t,g,用P.V操作解決司機與售票員的問題,信號量管理,創(chuàng)建信號量(SemCreate) 釋放信號量(SemPost) 等待信號量(SemPend) 信號量為0時任務(wù)掛起,永久或有限等待 無等待取信號量(SemAccept) 信號量為0時任務(wù)不會掛起,返回0,eCos的信號量管理(sidsa API),sm_cre
12、ate ULONG sm_create(char name4, ULONG count, ULONG flags, ULONG *smid) sm_delete ULONG sm_delete(ULONG smid) sm_p ULONG sm_p(ULONG smid, ULONG flags, ULONG timeout) sm_v ULONG sm_v(ULONG smid),eCos的信號量管理(kernel API),cyg_semaphore_init cyg_semaphore_destroy cyg_semaphore_wait cyg_semaphore_timed_wait
13、 cyg_semaphore_trywait cyg_semaphore_post cyg_semaphore_peek,互斥量(Mutex),一個互斥量就是一個同步對象,用于多任務(wù)串行訪問共享數(shù)據(jù) 只有一個任務(wù)可以獲得和擁有一個互斥量,也只有這個任務(wù)隨后才能釋放這個互斥量 互斥量是取值為0-1的二元信號量,互斥量管理,創(chuàng)建互斥量(MutexCreate) 刪除互斥量(MutexDelete) 等待互斥量(MutexPend) 釋放互斥量(MutexPost) 無等待獲取互斥量(MutexAccept),互斥量管理(sidsa API),NA,互斥量管理(kernel API),cyg_mut
14、ex_init cyg_mutex_destroy cyg_mutex_lock cyg_mutex_trylock cyg_mutex_unlock cyg_mutex_release cyg_mutex_set_ceiling cyg_mutex_set_protocol,事件標志(Event Flags),事件標志用于任務(wù)與多個事件的同步 獨立型同步(即邏輯或關(guān)系):任務(wù)需要與任何事件之一發(fā)生同步 關(guān)聯(lián)型同步(邏輯與關(guān)系):任務(wù)需要與若干事件都發(fā)生了同步 事件標志通常為32位變量,每個事件占一位(bit),當(dāng)一個標志處于設(shè)置狀態(tài)(1)時,表示相關(guān)事件已經(jīng)發(fā)生,事件標志組管理,創(chuàng)建事件標志
15、組(FLagCreate) 置位事件標志(FlagPost) 等待事件標志位(FlagPend) 無等待獲取事件標志位(FlagAccept) 清除事件標志位(FlagClear) 在再次發(fā)送事件標志前,應(yīng)先清除該標志,事件標志組管理(sidsa API),ev_send ULONG ev_send(ULONG tid, ULONG events) ev_receive ULONG ev_receive(ULONG events, ULONG flags, ULONG timeout, ULONG *events_r),事件標志組管理(kernel API),cyg_flag_init cyg
16、_flag_destroy cyg_flag_setbits cyg_flag_maskbits cyg_flag_wait cyg_flag_timed_wait cyg_flag_poll cyg_flag_peek cyg_flag_waiting,消息郵箱(Message Box),消息郵箱也稱作交換消息,是用一個指針型變量放到郵箱,該指針指向的內(nèi)容就是那則消息 消息郵箱用于一個線程向另一個線程發(fā)送消息,實現(xiàn)線程間通信 用一個I 字表示郵箱符號,消息郵箱管理,創(chuàng)建郵箱(MboxCreate) 發(fā)送消息(MboxPost) 消息放入郵箱后,或者是把消息傳給等待消息的任務(wù)表中優(yōu)先級最高的那
17、個任務(wù)(基于優(yōu)先級),或者是將消息傳給最先開始等待消息的任務(wù)(基于先進先出) 郵箱只能保存一個消息,試圖向已存有消息的郵箱發(fā)送消息會導(dǎo)致“郵箱滿”錯誤 等待消息(MboxPend) 等待消息的任務(wù)會因為郵箱是空的而被掛起,且被記錄到等待消息的任務(wù)表中,直到收到消息 無等待取消息(MboxAccept) 如果郵箱是空的任務(wù)也不會掛起,此時返回值為NULL表示無消息,消息郵箱管理(sidsa API),NA,消息郵箱管理(kernel API),cyg_mbox_create cyg_mbox_delete cyg_mbox_get cyg_mbox_timed_get cyg_mbox_tryg
18、et cyg_mbox_peek cyg_mbox_peek_item cyg_mbox_put cyg_mbox_timed_put cyg_mbox_tryput cyg_mbox_waiting_to_get cyg_mbox_waiting_to_put,消息隊列(Message Queue),消息隊列實際上是郵箱陣列 任務(wù)先得到的是最先進入消息隊列的消息,即先進先出原則(FIFO) 用2個I 字表示郵箱隊列符號,消息隊列管理,創(chuàng)建消息隊列(QCreate) 發(fā)送消息(QPost) 消息放入消息隊列后,或者是把消息傳給等待消息的任務(wù)表中優(yōu)先級最高的那個任務(wù)(基于優(yōu)先級),或者是將消息傳
19、給最先開始等待消息的任務(wù)(基于先進先出) 如果消息隊列內(nèi)的消息已滿,會導(dǎo)致“消息滿”錯誤 等待消息(QPend) 等待消息的任務(wù)會因為消息隊列是空的而被掛起,直到收到消息 無等待取消息(QAccept) 如果郵箱是空的任務(wù)也不會掛起,此時返回值為NULL表示無消息,消息隊列管理(sidsa API),q_create ULONG q_create(char name4, ULONG count, ULONG flags, ULONG *qid) q_delete ULONG q_delete(ULONG qid) q_send ULONG q_send(ULONG qid, ULONG msg
20、_buf4) q_receive ULONG q_receive(ULONG qid, ULONG flags, ULONG timeout, ULONG msg_buf4),消息隊列管理(kernel API),NA,設(shè)備驅(qū)動程序概述,1、I/O的特點 (1)I/O性能經(jīng)常成為系統(tǒng)性能的瓶頸 CPU性能不等于系統(tǒng)性能,響應(yīng)時間也是一個重要因素 CPU性能越高,與I/O差距越大 彌補:更多的線程 線程切換多,系統(tǒng)開銷大 (2)操作系統(tǒng)龐大復(fù)雜的原因之一是:資源多、雜,并發(fā),均來自I/O 外設(shè)種類繁多,結(jié)構(gòu)各異 輸入輸出數(shù)據(jù)信號類型不同 速度差異很大 (3)理解I/O的工作過程與結(jié)構(gòu)是理解操作系
21、統(tǒng)的工作過程與結(jié)構(gòu)的關(guān)鍵,(1)按照用戶的請求,控制設(shè)備的各種操作,完成I/O設(shè)備與內(nèi)存之間的數(shù)據(jù)交換(包括設(shè)備分配與回收;設(shè)備驅(qū)動程序;設(shè)備中斷處理;緩沖區(qū)管理),最終完成用戶的I/O請求 設(shè)備分配與回收 記錄設(shè)備的狀態(tài) 根據(jù)用戶的請求和設(shè)備的類型,采用一定的分配算法,選擇一條數(shù)據(jù)通路 建立統(tǒng)一的獨立于設(shè)備的接口 完成設(shè)備驅(qū)動程序,實現(xiàn)真正的I/O操作 處理外部設(shè)備的中斷處理 管理I/O緩沖區(qū),設(shè)備管理的目標和任務(wù),(2)向用戶提供使用外部設(shè)備的方便接口,使用戶擺脫繁瑣的編程負擔(dān) 方便性 友好界面 透明性 屏蔽硬件細節(jié)(設(shè)備的物理細節(jié),錯誤處理,不同I/O的差異性) (3)充分利用各種技術(shù)(
22、通道,中斷,緩沖等)提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力,充分利用資源,提高資源利用率 并行性 均衡性(使設(shè)備充分忙碌),設(shè)備管理的目標和任務(wù)(續(xù)),(4)保證多個線程競爭使用設(shè)備時,按一定策略分配和管理各種設(shè)備,使系統(tǒng)能有條不紊的工作 (5)保護 設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是安全的、不被破壞的、保密的 (6)與設(shè)備無關(guān)性(設(shè)備獨立性) 用戶在編制程序時,使用邏輯設(shè)備名,由系統(tǒng)實現(xiàn)邏輯設(shè)備到物理設(shè)備(實際設(shè)備)的轉(zhuǎn)換,用戶能獨立于具體物理設(shè)備而方便的使用設(shè)備,設(shè)備管理的目標和任務(wù)(續(xù)),用戶申請使用設(shè)備時,只需要指定設(shè)備類型,而無須指定具體物理設(shè)備,系統(tǒng)根據(jù)當(dāng)前的請求,及設(shè)備分配的情況
23、,在相同類別設(shè)備中,選擇一個空閑設(shè)備,并將其分配給一個申請線程 統(tǒng)一性: 對不同的設(shè)備采取統(tǒng)一的操作方式,在用戶程序中使用的是邏輯設(shè)備 優(yōu)點: 設(shè)備忙碌或設(shè)備故障時,用戶不必修改程序 改善了系統(tǒng)的可適應(yīng)性和可擴展性,設(shè)備管理的目標和任務(wù)(續(xù)),設(shè)備獨立的軟件,雖然IO軟件中一部分是設(shè)備專用的,但大部分軟件是與設(shè)備無關(guān)的。設(shè)備驅(qū)動程序與設(shè)備獨立軟件之間的確切界限是依賴于具體系統(tǒng)的,1.獨立于設(shè)備的軟件的基本任務(wù)是實現(xiàn)所有設(shè)備都需要的功能,并且向用戶級軟件提供一個統(tǒng)一的接口 2.如何給文件和設(shè)備這樣的對象命名是操作系統(tǒng)中的一個主要課題。獨立于設(shè)備的軟件負責(zé)把設(shè)備的符號名映射到正確的設(shè)備驅(qū)動上 3.設(shè)備保護 系統(tǒng)如何防止無權(quán)存取設(shè)備的用戶存取設(shè)備呢? 4.緩沖技術(shù) 5.設(shè)備分配 6.出錯處理,設(shè)備獨立的軟件(續(xù)),(1)緩沖技術(shù)的引入
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校本培訓(xùn)個人工作總結(jié)
- 企業(yè)出納專員崗位職責(zé)與工作內(nèi)容(30篇)
- 夏令營開營講話稿(4篇)
- 2025年小學(xué)英語教學(xué)研討會:微型課教案研究
- 養(yǎng)貓藥品知識培訓(xùn)課件
- 2025年宏觀經(jīng)濟學(xué)課件模板
- 物流系統(tǒng)分析 課件 任務(wù)四 認識物流系統(tǒng)的要素
- 2023年天津卷高考真題數(shù)學(xué)試卷
- 汽車故障診斷與修復(fù)流程
- IT信息技術(shù)支持及云服務(wù)運營方案
- 土建類專職安全生產(chǎn)管理人員練習(xí)題+參考答案
- 中國新能源汽車:2024年總結(jié)與2025年趨勢報告-電動汽車觀察家
- 【高++中語文++】《記念劉和珍君》課件+統(tǒng)編版高中語文選擇性必修中冊
- 分布式光伏發(fā)電開發(fā)建設(shè)管理辦法2025
- 《科幻小說賞析與寫作》 課件 -第六章 “外星文明”的善意與惡行-《安德的游戲》
- 《我國的文化安全》課件
- 2025年貴州蔬菜集團有限公司招聘筆試參考題庫含答案解析
- 2025蛇年一上英語寒假作業(yè)
- 2024年呼和浩特職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫參考答案
- 2025年太倉市文化旅游發(fā)展集團限公司及子公司公開招聘12名高頻重點提升(共500題)附帶答案詳解
- 機械制圖題庫及答案
評論
0/150
提交評論