![嵌入式系統(tǒng)及應(yīng)用-chapter4實時內(nèi)核基礎(chǔ)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/25/68ab759a-b20c-4603-b90d-def7ea03adc4/68ab759a-b20c-4603-b90d-def7ea03adc41.gif)
![嵌入式系統(tǒng)及應(yīng)用-chapter4實時內(nèi)核基礎(chǔ)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/25/68ab759a-b20c-4603-b90d-def7ea03adc4/68ab759a-b20c-4603-b90d-def7ea03adc42.gif)
![嵌入式系統(tǒng)及應(yīng)用-chapter4實時內(nèi)核基礎(chǔ)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/25/68ab759a-b20c-4603-b90d-def7ea03adc4/68ab759a-b20c-4603-b90d-def7ea03adc43.gif)
![嵌入式系統(tǒng)及應(yīng)用-chapter4實時內(nèi)核基礎(chǔ)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/25/68ab759a-b20c-4603-b90d-def7ea03adc4/68ab759a-b20c-4603-b90d-def7ea03adc44.gif)
![嵌入式系統(tǒng)及應(yīng)用-chapter4實時內(nèi)核基礎(chǔ)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/25/68ab759a-b20c-4603-b90d-def7ea03adc4/68ab759a-b20c-4603-b90d-def7ea03adc45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章第四章 嵌入式實時內(nèi)核基礎(chǔ)嵌入式實時內(nèi)核基礎(chǔ)主要內(nèi)容主要內(nèi)容q嵌入式實時內(nèi)核的關(guān)鍵設(shè)計問題嵌入式實時內(nèi)核的關(guān)鍵設(shè)計問題 q嵌入式實時內(nèi)核的主要功能嵌入式實時內(nèi)核的主要功能 q嵌入式實時內(nèi)核的重要性能指標(biāo)嵌入式實時內(nèi)核的重要性能指標(biāo) 第一節(jié)第一節(jié)嵌入式實時內(nèi)核的關(guān)鍵設(shè)計問題嵌入式實時內(nèi)核的關(guān)鍵設(shè)計問題 實時性實時性可移植性可移植性可剪裁、可配置性可剪裁、可配置性可靠性可靠性應(yīng)用編程接口應(yīng)用編程接口嵌入式實時內(nèi)核,在設(shè)計時通常需要考嵌入式實時內(nèi)核,在設(shè)計時通常需要考慮以下要求:慮以下要求:v實時性實時性v可移植性可移植性v可剪裁、可配置性可剪裁、可配置性v可靠性可靠性v應(yīng)用編程接口應(yīng)用編程接
2、口 實時性實時性q實時性是實時內(nèi)核最重要的特性之一。實時性是實時內(nèi)核最重要的特性之一。q實時系統(tǒng)的正確性不僅依賴于系統(tǒng)計算實時系統(tǒng)的正確性不僅依賴于系統(tǒng)計算的邏輯結(jié)果,還依賴于產(chǎn)生這些結(jié)果的的邏輯結(jié)果,還依賴于產(chǎn)生這些結(jié)果的時間。時間。q從整體上考慮,一個系統(tǒng)的實時性能與從整體上考慮,一個系統(tǒng)的實時性能與硬件、操作系統(tǒng)及應(yīng)用程序三方面都有硬件、操作系統(tǒng)及應(yīng)用程序三方面都有關(guān)系,提高硬件能力可以在一定程度上關(guān)系,提高硬件能力可以在一定程度上提高實時性,但是當(dāng)硬件條件確定之后,提高實時性,但是當(dāng)硬件條件確定之后,嵌入式系統(tǒng)的性能主要是由操作系統(tǒng)來嵌入式系統(tǒng)的性能主要是由操作系統(tǒng)來決定,其中實時內(nèi)核
3、起著關(guān)鍵的作用。決定,其中實時內(nèi)核起著關(guān)鍵的作用。 實時性實時性q所謂實時性是指:所謂實時性是指:v實時內(nèi)核應(yīng)該保證系統(tǒng)盡可能快地對外部事實時內(nèi)核應(yīng)該保證系統(tǒng)盡可能快地對外部事件產(chǎn)生響應(yīng)件產(chǎn)生響應(yīng)v系統(tǒng)對外部事件響應(yīng)的最壞時間是可以預(yù)知系統(tǒng)對外部事件響應(yīng)的最壞時間是可以預(yù)知的的 實時性實時性q關(guān)于內(nèi)核實時性的幾個重要原則:關(guān)于內(nèi)核實時性的幾個重要原則:v支持多任務(wù):為了降低任務(wù)切換延遲,許多支持多任務(wù):為了降低任務(wù)切換延遲,許多實時內(nèi)核的實現(xiàn)都使用輕量級任務(wù)(即線實時內(nèi)核的實現(xiàn)都使用輕量級任務(wù)(即線程)。線程是輕量級的,因為它們攜帶的信程)。線程是輕量級的,因為它們攜帶的信息比進(jìn)程要少。這意味
4、著一個線程的控制塊息比進(jìn)程要少。這意味著一個線程的控制塊比進(jìn)程的控制塊要小,存儲被搶占線程的控比進(jìn)程的控制塊要小,存儲被搶占線程的控制塊和恢復(fù)下一個執(zhí)行線程的控制塊所帶來制塊和恢復(fù)下一個執(zhí)行線程的控制塊所帶來的開銷就被降低了。因此在嵌入式實時系統(tǒng)的開銷就被降低了。因此在嵌入式實時系統(tǒng)中,多采用單進(jìn)程多線程(任務(wù))調(diào)度來提中,多采用單進(jìn)程多線程(任務(wù))調(diào)度來提高實時性。高實時性。v支持搶占式多任務(wù)支持搶占式多任務(wù) 實時性實時性v支持任務(wù)的優(yōu)先級調(diào)度支持任務(wù)的優(yōu)先級調(diào)度v支持可預(yù)測的任務(wù)同步機(jī)制支持可預(yù)測的任務(wù)同步機(jī)制 v實時內(nèi)核的運(yùn)行時間(如中斷延遲、任務(wù)切實時內(nèi)核的運(yùn)行時間(如中斷延遲、任務(wù)切
5、換延遲等)可知并可以預(yù)測換延遲等)可知并可以預(yù)測v系統(tǒng)調(diào)用的確定性。指系統(tǒng)調(diào)用的執(zhí)行時間系統(tǒng)調(diào)用的確定性。指系統(tǒng)調(diào)用的執(zhí)行時間即使在最壞的情形下也是可預(yù)測的。一個時即使在最壞的情形下也是可預(yù)測的。一個時間確定的系統(tǒng)調(diào)用,它的執(zhí)行時間往往不是間確定的系統(tǒng)調(diào)用,它的執(zhí)行時間往往不是唯一的值,而是在一個范圍內(nèi)。系統(tǒng)調(diào)用運(yùn)唯一的值,而是在一個范圍內(nèi)。系統(tǒng)調(diào)用運(yùn)行時間可以預(yù)測還有一層含義,即不論系統(tǒng)行時間可以預(yù)測還有一層含義,即不論系統(tǒng)負(fù)載如何,系統(tǒng)調(diào)用的最大執(zhí)行時間可以確負(fù)載如何,系統(tǒng)調(diào)用的最大執(zhí)行時間可以確定。定。 實時性實時性q影響實時性的主要因素影響實時性的主要因素 v調(diào)度算法調(diào)度算法v內(nèi)核的可
6、搶占性內(nèi)核的可搶占性v內(nèi)核的關(guān)中斷時間內(nèi)核的關(guān)中斷時間v存儲管理機(jī)制存儲管理機(jī)制v資源等待的處理資源等待的處理v優(yōu)先級反轉(zhuǎn)的處理優(yōu)先級反轉(zhuǎn)的處理v中斷處理中斷處理v浮點數(shù)的處理浮點數(shù)的處理調(diào)度算法調(diào)度算法在設(shè)計一個實時內(nèi)核的調(diào)度器的時候,在設(shè)計一個實時內(nèi)核的調(diào)度器的時候,公平和最小化平均響應(yīng)時間不是重要的。公平和最小化平均響應(yīng)時間不是重要的。重要的是所有的硬實時任務(wù)要在它們的重要的是所有的硬實時任務(wù)要在它們的最后期限之前完成(或開始),以及盡最后期限之前完成(或開始),以及盡可能多的軟實時任務(wù)也在它們的最后期可能多的軟實時任務(wù)也在它們的最后期限之前完成(或開始)。因此,實時內(nèi)限之前完成(或開始
7、)。因此,實時內(nèi)核被設(shè)計為盡可能地響應(yīng)實時任務(wù),當(dāng)核被設(shè)計為盡可能地響應(yīng)實時任務(wù),當(dāng)一個實時任務(wù)的最后期限接近時,它能一個實時任務(wù)的最后期限接近時,它能夠被迅速地調(diào)度。夠被迅速地調(diào)度。 調(diào)度算法調(diào)度算法當(dāng)前任務(wù)當(dāng)前任務(wù)實時任務(wù)實時任務(wù)一個實時任務(wù)就緒一個實時任務(wù)就緒該實時任務(wù)被調(diào)度該實時任務(wù)被調(diào)度當(dāng)前任務(wù)阻塞或完成當(dāng)前任務(wù)阻塞或完成調(diào)度時間調(diào)度時間優(yōu)先級驅(qū)動的非搶占優(yōu)先級驅(qū)動的非搶占式調(diào)度式調(diào)度在一個非搶占式的調(diào)度器中,可以使用優(yōu)先級調(diào)度,給予實時任務(wù)較在一個非搶占式的調(diào)度器中,可以使用優(yōu)先級調(diào)度,給予實時任務(wù)較高的優(yōu)先級。高的優(yōu)先級。在這種情況下,一旦當(dāng)前任務(wù)阻塞或運(yùn)行完成,一個已就緒的優(yōu)先
8、級在這種情況下,一旦當(dāng)前任務(wù)阻塞或運(yùn)行完成,一個已就緒的優(yōu)先級更高的實時任務(wù)將會被調(diào)度。如果一個慢速的、低優(yōu)先級的任務(wù)在這更高的實時任務(wù)將會被調(diào)度。如果一個慢速的、低優(yōu)先級的任務(wù)在這個關(guān)鍵的時間執(zhí)行,就可能延遲優(yōu)先級更高的實時任務(wù),因而這個方個關(guān)鍵的時間執(zhí)行,就可能延遲優(yōu)先級更高的實時任務(wù),因而這個方法對實時內(nèi)核來說是不可接受的。法對實時內(nèi)核來說是不可接受的。 調(diào)度算法調(diào)度算法在下一個搶占點處實時任務(wù)被調(diào)度在下一個搶占點處實時任務(wù)被調(diào)度一個實時任務(wù)就緒一個實時任務(wù)就緒調(diào)度時間調(diào)度時間當(dāng)前任務(wù)當(dāng)前任務(wù)實時任務(wù)實時任務(wù)搶占點搶占點基于搶占點的優(yōu)先級基于搶占點的優(yōu)先級驅(qū)動的搶占式調(diào)度驅(qū)動的搶占式調(diào)度
9、在規(guī)定的時間間隔處設(shè)置搶占點,當(dāng)一個搶占點發(fā)生時,如果有在規(guī)定的時間間隔處設(shè)置搶占點,當(dāng)一個搶占點發(fā)生時,如果有一個更高優(yōu)先級的任務(wù)在等待,當(dāng)前運(yùn)行的任務(wù)就被搶占。一個更高優(yōu)先級的任務(wù)在等待,當(dāng)前運(yùn)行的任務(wù)就被搶占。在這種情況下造成的延遲根據(jù)搶占點之間的時間間隔而定,可能在這種情況下造成的延遲根據(jù)搶占點之間的時間間隔而定,可能在幾個毫秒的數(shù)量級上。在幾個毫秒的數(shù)量級上。調(diào)度算法調(diào)度算法一個實時任務(wù)就緒一個實時任務(wù)就緒當(dāng)前任務(wù)當(dāng)前任務(wù)實時任務(wù)實時任務(wù)實時任務(wù)搶占當(dāng)前任務(wù)并立即執(zhí)行實時任務(wù)搶占當(dāng)前任務(wù)并立即執(zhí)行調(diào)度時間調(diào)度時間立即搶占調(diào)度立即搶占調(diào)度可以滿足要求更高的實時應(yīng)用,該方法被稱為立即搶占
10、??梢詽M足要求更高的實時應(yīng)用,該方法被稱為立即搶占。在這種情況下,內(nèi)核幾乎立即地響應(yīng)一個實時任務(wù),除非系統(tǒng)處在這種情況下,內(nèi)核幾乎立即地響應(yīng)一個實時任務(wù),除非系統(tǒng)處于一個臨界代碼鎖定段中。一個實時任務(wù)的調(diào)度延遲可以被降低于一個臨界代碼鎖定段中。一個實時任務(wù)的調(diào)度延遲可以被降低到更少。到更少。調(diào)度算法調(diào)度算法q在大多數(shù)實時內(nèi)核中,為了能夠在突發(fā)狀在大多數(shù)實時內(nèi)核中,為了能夠在突發(fā)狀態(tài)時迅速做出反應(yīng),大都采用態(tài)時迅速做出反應(yīng),大都采用“搶占式優(yōu)搶占式優(yōu)先級任務(wù)調(diào)度先級任務(wù)調(diào)度”的機(jī)制,也就是實時內(nèi)核的機(jī)制,也就是實時內(nèi)核有權(quán)主動終止當(dāng)前任務(wù)的執(zhí)行,將執(zhí)行權(quán)有權(quán)主動終止當(dāng)前任務(wù)的執(zhí)行,將執(zhí)行權(quán)交給新
11、就緒的高優(yōu)先級任務(wù),并且是立即交給新就緒的高優(yōu)先級任務(wù),并且是立即搶占的。搶占的。q目前比較流行的思路是采用基于優(yōu)先級的目前比較流行的思路是采用基于優(yōu)先級的可搶占調(diào)度作為主要的調(diào)度方式,配合同可搶占調(diào)度作為主要的調(diào)度方式,配合同優(yōu)先級時間片輪轉(zhuǎn)調(diào)度作為可選擇的調(diào)度優(yōu)先級時間片輪轉(zhuǎn)調(diào)度作為可選擇的調(diào)度方式,兼顧同優(yōu)先級任務(wù),使它們具有平方式,兼顧同優(yōu)先級任務(wù),使它們具有平等的運(yùn)行權(quán)利?;趦?yōu)先級的調(diào)度方式是等的運(yùn)行權(quán)利?;趦?yōu)先級的調(diào)度方式是指指CPU總是讓處于就緒態(tài)的、優(yōu)先級最高總是讓處于就緒態(tài)的、優(yōu)先級最高的任務(wù)先運(yùn)行。的任務(wù)先運(yùn)行。 調(diào)度算法調(diào)度算法q非搶占式調(diào)度與搶占式調(diào)度非搶占式調(diào)度與
12、搶占式調(diào)度v非搶占式調(diào)度要求每個任務(wù)主動放棄非搶占式調(diào)度要求每個任務(wù)主動放棄CPU的的使用權(quán)。使用權(quán)。 v在搶占式調(diào)度的情況下,一旦更高優(yōu)先級的在搶占式調(diào)度的情況下,一旦更高優(yōu)先級的任務(wù)就緒,當(dāng)前任務(wù)的任務(wù)就緒,當(dāng)前任務(wù)的CPU使用權(quán)就會被盡使用權(quán)就會被盡快剝奪,以使更高優(yōu)先級的任務(wù)能夠盡快得快剝奪,以使更高優(yōu)先級的任務(wù)能夠盡快得到到CPU。 非搶占式調(diào)度非搶占式調(diào)度中斷服務(wù)以后,中斷服務(wù)以后,CPUCPU使用權(quán)歸還給原來使用權(quán)歸還給原來被中斷了的那個任務(wù),直到該任務(wù)主被中斷了的那個任務(wù),直到該任務(wù)主動放棄動放棄CPUCPU的使用權(quán),新就緒的高優(yōu)先的使用權(quán),新就緒的高優(yōu)先級的任務(wù)才能獲得級的任
13、務(wù)才能獲得CPUCPU的使用權(quán)。的使用權(quán)。假設(shè)在任務(wù)運(yùn)行過程中可以響應(yīng)中斷,并且中斷服務(wù)使一個高優(yōu)假設(shè)在任務(wù)運(yùn)行過程中可以響應(yīng)中斷,并且中斷服務(wù)使一個高優(yōu)先級任務(wù)由其它狀態(tài)變?yōu)榫途w態(tài)。先級任務(wù)由其它狀態(tài)變?yōu)榫途w態(tài)。搶占式調(diào)度搶占式調(diào)度中斷服務(wù)程序使一個高優(yōu)先級中斷服務(wù)程序使一個高優(yōu)先級任務(wù)就緒,中斷完成后,高優(yōu)任務(wù)就緒,中斷完成后,高優(yōu)先級任務(wù)開始運(yùn)行。先級任務(wù)開始運(yùn)行。內(nèi)核的可搶占性內(nèi)核的可搶占性q可搶占內(nèi)核(可搶占內(nèi)核(preemptable kernel)與可)與可搶占調(diào)度(搶占調(diào)度(preemptive scheduling)是不)是不同的概念。內(nèi)核可搶占與不可搶占,體同的概念。內(nèi)核可
14、搶占與不可搶占,體現(xiàn)在任務(wù)在使用內(nèi)核提供的系統(tǒng)調(diào)用的現(xiàn)在任務(wù)在使用內(nèi)核提供的系統(tǒng)調(diào)用的過程中被中斷打斷的不同處理上。過程中被中斷打斷的不同處理上。 內(nèi)核的可搶占性內(nèi)核的可搶占性q可搶占內(nèi)核:即使正在執(zhí)行的是內(nèi)核服務(wù)可搶占內(nèi)核:即使正在執(zhí)行的是內(nèi)核服務(wù)函數(shù),也能響應(yīng)中斷,并且中斷服務(wù)程序函數(shù),也能響應(yīng)中斷,并且中斷服務(wù)程序退出時能進(jìn)行任務(wù)重新調(diào)度:如果有優(yōu)先退出時能進(jìn)行任務(wù)重新調(diào)度:如果有優(yōu)先級更高的任務(wù)就緒,就立即讓高優(yōu)先級任級更高的任務(wù)就緒,就立即讓高優(yōu)先級任務(wù)運(yùn)行,不要求回到被中斷的任務(wù),將未務(wù)運(yùn)行,不要求回到被中斷的任務(wù),將未完成的系統(tǒng)調(diào)用執(zhí)行完。完成的系統(tǒng)調(diào)用執(zhí)行完。內(nèi)核的可搶占性內(nèi)核
15、的可搶占性q不可搶占內(nèi)核:不可搶占內(nèi)核有兩種情況,一不可搶占內(nèi)核:不可搶占內(nèi)核有兩種情況,一是內(nèi)核服務(wù)函數(shù)不能被中斷,二是能被中斷但是內(nèi)核服務(wù)函數(shù)不能被中斷,二是能被中斷但是不能進(jìn)行任務(wù)重新調(diào)度。在第一種情況下,是不能進(jìn)行任務(wù)重新調(diào)度。在第一種情況下,系統(tǒng)在執(zhí)行內(nèi)核服務(wù)函數(shù)時處于關(guān)中斷狀態(tài),系統(tǒng)在執(zhí)行內(nèi)核服務(wù)函數(shù)時處于關(guān)中斷狀態(tài),不能響應(yīng)外部可屏蔽中斷,這樣就會在一定程不能響應(yīng)外部可屏蔽中斷,這樣就會在一定程度上延遲中斷響應(yīng)時間。在第二種情況下,系度上延遲中斷響應(yīng)時間。在第二種情況下,系統(tǒng)在執(zhí)行內(nèi)核服務(wù)函數(shù)時可以響應(yīng)中斷,不會統(tǒng)在執(zhí)行內(nèi)核服務(wù)函數(shù)時可以響應(yīng)中斷,不會延遲中斷響應(yīng)時間,但是在中斷
16、退出時不進(jìn)行延遲中斷響應(yīng)時間,但是在中斷退出時不進(jìn)行任務(wù)重新調(diào)度,即使在中斷服務(wù)程序執(zhí)行過程任務(wù)重新調(diào)度,即使在中斷服務(wù)程序執(zhí)行過程中有更高優(yōu)先級的任務(wù)就緒,也必須回到被中中有更高優(yōu)先級的任務(wù)就緒,也必須回到被中斷的任務(wù)將未完成的內(nèi)核函數(shù)執(zhí)行完后,才能斷的任務(wù)將未完成的內(nèi)核函數(shù)執(zhí)行完后,才能讓高優(yōu)先級任務(wù)執(zhí)行。讓高優(yōu)先級任務(wù)執(zhí)行。 內(nèi)核的可搶占性內(nèi)核的可搶占性低優(yōu)先級任務(wù)低優(yōu)先級任務(wù)內(nèi)核服務(wù)內(nèi)核服務(wù)ISRISR高優(yōu)先級任務(wù)高優(yōu)先級任務(wù)時時間間(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)不可搶占內(nèi)核不可搶占內(nèi)核內(nèi)核的可搶占性內(nèi)核的可搶占性低優(yōu)先級任務(wù)低優(yōu)先級任務(wù)內(nèi)核服務(wù)內(nèi)核服務(wù)I
17、SRISR高優(yōu)先級任務(wù)高優(yōu)先級任務(wù)時時間間(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)可搶占內(nèi)核可搶占內(nèi)核內(nèi)核的關(guān)中斷時間內(nèi)核的關(guān)中斷時間q內(nèi)核的關(guān)中斷時間由內(nèi)核服務(wù)函數(shù)對臨界資源內(nèi)核的關(guān)中斷時間由內(nèi)核服務(wù)函數(shù)對臨界資源的操作而引入。的操作而引入。q為了保護(hù)臨界資源不被破壞,在臨界區(qū)中需要為了保護(hù)臨界資源不被破壞,在臨界區(qū)中需要暫時屏蔽中斷。暫時屏蔽中斷。q內(nèi)核服務(wù)函數(shù)對臨界區(qū)的操作可能不連續(xù),即內(nèi)核服務(wù)函數(shù)對臨界區(qū)的操作可能不連續(xù),即臨界區(qū)之間有非臨界區(qū)的操作。對于內(nèi)核中的臨界區(qū)之間有非臨界區(qū)的操作。對于內(nèi)核中的這種服務(wù)函數(shù),可以合理地設(shè)置一些可搶占區(qū)這種服務(wù)函數(shù),可以合理地
18、設(shè)置一些可搶占區(qū)域或可搶占點(開放中斷的地方)減少系統(tǒng)的域或可搶占點(開放中斷的地方)減少系統(tǒng)的關(guān)中斷時間。關(guān)中斷時間。q不同的內(nèi)核在中斷響應(yīng)時間上的差異主要來自不同的內(nèi)核在中斷響應(yīng)時間上的差異主要來自于內(nèi)核的最大關(guān)中斷時間,所以,通過這些處于內(nèi)核的最大關(guān)中斷時間,所以,通過這些處理可以讓內(nèi)核具有較好的及時響應(yīng)中斷的能力。理可以讓內(nèi)核具有較好的及時響應(yīng)中斷的能力。 存儲管理機(jī)制存儲管理機(jī)制q在嵌入式實時內(nèi)核的實現(xiàn)中,通常不采用虛擬在嵌入式實時內(nèi)核的實現(xiàn)中,通常不采用虛擬內(nèi)存管理機(jī)制,以提高系統(tǒng)的實時性。內(nèi)存管理機(jī)制,以提高系統(tǒng)的實時性。q虛擬內(nèi)存管理中的缺頁調(diào)度時間取決于需要調(diào)虛擬內(nèi)存管理中的
19、缺頁調(diào)度時間取決于需要調(diào)入的頁面在外圍存儲介質(zhì)中的物理位置(比如入的頁面在外圍存儲介質(zhì)中的物理位置(比如某一柱面、磁道、扇區(qū)),造成執(zhí)行時間上的某一柱面、磁道、扇區(qū)),造成執(zhí)行時間上的無法預(yù)測性。一個嚴(yán)格的實時、嵌入式系統(tǒng)要無法預(yù)測性。一個嚴(yán)格的實時、嵌入式系統(tǒng)要求實時性、內(nèi)存鎖定和代碼緊湊,虛擬內(nèi)存管求實時性、內(nèi)存鎖定和代碼緊湊,虛擬內(nèi)存管理往往不能滿足這些要求。尤其對于一個強(qiáng)實理往往不能滿足這些要求。尤其對于一個強(qiáng)實時的嵌入式系統(tǒng),虛擬內(nèi)存管理機(jī)制對時間確時的嵌入式系統(tǒng),虛擬內(nèi)存管理機(jī)制對時間確定性是不利的,而且還有移植上的困難(在不定性是不利的,而且還有移植上的困難(在不同的嵌入式目標(biāo)硬
20、件平臺上實現(xiàn)虛存管理需要同的嵌入式目標(biāo)硬件平臺上實現(xiàn)虛存管理需要一定硬件機(jī)制的支持,比如微處理器的內(nèi)存管一定硬件機(jī)制的支持,比如微處理器的內(nèi)存管理單元理單元MMU。不是所有的微處理器都具備。不是所有的微處理器都具備MMU功能)。功能)。 存儲管理機(jī)制存儲管理機(jī)制q從實踐上,大多數(shù)的嵌入式系統(tǒng)一方面不具備從實踐上,大多數(shù)的嵌入式系統(tǒng)一方面不具備大容量的外部存儲器以支持虛擬存儲;另一方大容量的外部存儲器以支持虛擬存儲;另一方面,嵌入式系統(tǒng)是確定的,不像通用計算機(jī)那面,嵌入式系統(tǒng)是確定的,不像通用計算機(jī)那樣總是希望運(yùn)行更多的應(yīng)用程序,對于既定的樣總是希望運(yùn)行更多的應(yīng)用程序,對于既定的應(yīng)用來說,它在運(yùn)
21、行過程中所需的動態(tài)數(shù)據(jù)空應(yīng)用來說,它在運(yùn)行過程中所需的動態(tài)數(shù)據(jù)空間也是可預(yù)測的。因而在嵌入式系統(tǒng)中的內(nèi)存間也是可預(yù)測的。因而在嵌入式系統(tǒng)中的內(nèi)存容量一般都是經(jīng)過特別計算并適合應(yīng)用需求的。容量一般都是經(jīng)過特別計算并適合應(yīng)用需求的。 資源等待的處理資源等待的處理q在多任務(wù)實時應(yīng)用中,任務(wù)沒能獲得需要的資在多任務(wù)實時應(yīng)用中,任務(wù)沒能獲得需要的資源就會被阻塞。源就會被阻塞。q如果該資源并不是任務(wù)繼續(xù)運(yùn)行必備的,任務(wù)如果該資源并不是任務(wù)繼續(xù)運(yùn)行必備的,任務(wù)可選擇有限等待該資源,在等待一段時間后如可選擇有限等待該資源,在等待一段時間后如果還沒獲得該資源,內(nèi)核可以喚醒該任務(wù),確果還沒獲得該資源,內(nèi)核可以喚醒
22、該任務(wù),確保它余下的工作不被耽誤。這就是資源的有限保它余下的工作不被耽誤。這就是資源的有限時間等待方式,采用該方式能有效地避免死鎖,時間等待方式,采用該方式能有效地避免死鎖,并提高系統(tǒng)的實時性。并提高系統(tǒng)的實時性。 優(yōu)先級反轉(zhuǎn)的處理優(yōu)先級反轉(zhuǎn)的處理q搶占式的內(nèi)核設(shè)計雖然可以降低任務(wù)重新調(diào)度搶占式的內(nèi)核設(shè)計雖然可以降低任務(wù)重新調(diào)度的延遲時間,但會產(chǎn)生優(yōu)先級反轉(zhuǎn)失控的問題:的延遲時間,但會產(chǎn)生優(yōu)先級反轉(zhuǎn)失控的問題:低優(yōu)先級的任務(wù)低優(yōu)先級的任務(wù)L占用臨界資源,高優(yōu)先級任占用臨界資源,高優(yōu)先級任務(wù)務(wù)H擁有執(zhí)行權(quán)但又必須等待該臨界資源,這擁有執(zhí)行權(quán)但又必須等待該臨界資源,這樣就導(dǎo)致低優(yōu)先級的任務(wù)反而優(yōu)先
23、執(zhí)行。這時樣就導(dǎo)致低優(yōu)先級的任務(wù)反而優(yōu)先執(zhí)行。這時如果系統(tǒng)中不斷有中等優(yōu)先級任務(wù)出現(xiàn),系統(tǒng)如果系統(tǒng)中不斷有中等優(yōu)先級任務(wù)出現(xiàn),系統(tǒng)的任務(wù)調(diào)度將變得不穩(wěn)定并且難以預(yù)測。的任務(wù)調(diào)度將變得不穩(wěn)定并且難以預(yù)測。q優(yōu)先級繼承和優(yōu)先級天花板兩種方法可以解決優(yōu)先級繼承和優(yōu)先級天花板兩種方法可以解決優(yōu)先級反轉(zhuǎn)問題。優(yōu)先級反轉(zhuǎn)問題。 中斷處理中斷處理在中斷處理方面,可通過以下方法提高系統(tǒng)的在中斷處理方面,可通過以下方法提高系統(tǒng)的實時性:實時性:v允許中斷嵌套允許中斷嵌套 在處理某一級中斷的過程中,允許更高優(yōu)先級的中斷在處理某一級中斷的過程中,允許更高優(yōu)先級的中斷打斷它。中斷嵌套讓更緊急的中斷優(yōu)先得到服務(wù)。打斷它
24、。中斷嵌套讓更緊急的中斷優(yōu)先得到服務(wù)。通過這項功能,系統(tǒng)設(shè)計者可以指定外部中斷的優(yōu)先通過這項功能,系統(tǒng)設(shè)計者可以指定外部中斷的優(yōu)先級,從而確保高優(yōu)先級的中斷能及時處理。利用外部級,從而確保高優(yōu)先級的中斷能及時處理。利用外部中斷控制器來設(shè)置中斷的優(yōu)先級,在中斷處理程序的中斷控制器來設(shè)置中斷的優(yōu)先級,在中斷處理程序的啟動過程中,設(shè)置中斷控制器(比如啟動過程中,設(shè)置中斷控制器(比如8259)的中斷屏)的中斷屏蔽寄存器的相應(yīng)位,使得較低優(yōu)先級的中斷不能被響蔽寄存器的相應(yīng)位,使得較低優(yōu)先級的中斷不能被響應(yīng);在離開中斷處理程序時,恢復(fù)屏蔽位。應(yīng);在離開中斷處理程序時,恢復(fù)屏蔽位。 中斷處理中斷處理v簡短的
25、中斷服務(wù)程序簡短的中斷服務(wù)程序 基于幾方面的原因,中斷服務(wù)程序應(yīng)該盡量簡短:基于幾方面的原因,中斷服務(wù)程序應(yīng)該盡量簡短: 一方面,中斷處理過程中屏蔽了同級和較低級別的中斷,一方面,中斷處理過程中屏蔽了同級和較低級別的中斷,對這些中斷的處理要等當(dāng)前的中斷服務(wù)程序執(zhí)行完后才能對這些中斷的處理要等當(dāng)前的中斷服務(wù)程序執(zhí)行完后才能開始。如果發(fā)生中斷嵌套致使當(dāng)前中斷服務(wù)程序被打斷,開始。如果發(fā)生中斷嵌套致使當(dāng)前中斷服務(wù)程序被打斷,則被打斷的中斷服務(wù)程序要等所有高優(yōu)先級中斷的服務(wù)程則被打斷的中斷服務(wù)程序要等所有高優(yōu)先級中斷的服務(wù)程序執(zhí)行完后才能繼續(xù)執(zhí)行。序執(zhí)行完后才能繼續(xù)執(zhí)行。 另一方面,在多任務(wù)應(yīng)用中,對
26、中斷的處理并不需要全都另一方面,在多任務(wù)應(yīng)用中,對中斷的處理并不需要全都由中斷服務(wù)程序完成,通常采用中斷服務(wù)程序和任務(wù)配合由中斷服務(wù)程序完成,通常采用中斷服務(wù)程序和任務(wù)配合的方式來處理導(dǎo)致中斷的外部事件。這時,中斷服務(wù)程序的方式來處理導(dǎo)致中斷的外部事件。這時,中斷服務(wù)程序只需做必要的處理比如接收外部設(shè)備產(chǎn)生的數(shù)據(jù)或信號、只需做必要的處理比如接收外部設(shè)備產(chǎn)生的數(shù)據(jù)或信號、清除中斷位等,更進(jìn)一步的操作放到與之相關(guān)的任務(wù)中完清除中斷位等,更進(jìn)一步的操作放到與之相關(guān)的任務(wù)中完成。成。浮點數(shù)的處理浮點數(shù)的處理在進(jìn)行浮點數(shù)處理的時候,往往要使用到數(shù)字在進(jìn)行浮點數(shù)處理的時候,往往要使用到數(shù)字協(xié)處理器(如果有
27、的話)。協(xié)處理器(如果有的話)。如果系統(tǒng)只有一個浮點任務(wù),數(shù)字協(xié)處理器的如果系統(tǒng)只有一個浮點任務(wù),數(shù)字協(xié)處理器的內(nèi)容就可以不做保存和恢復(fù)。這樣的優(yōu)化處理內(nèi)容就可以不做保存和恢復(fù)。這樣的優(yōu)化處理避免了不必要的協(xié)處理器上下文切換,有效地避免了不必要的協(xié)處理器上下文切換,有效地提高了效率。提高了效率。 可移植性可移植性q隨著硬件平臺的迅猛發(fā)展和嵌入式實時隨著硬件平臺的迅猛發(fā)展和嵌入式實時系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大,支持多平臺系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大,支持多平臺已經(jīng)是嵌入式實時操作系統(tǒng)發(fā)展的必然已經(jīng)是嵌入式實時操作系統(tǒng)發(fā)展的必然趨勢。趨勢。q可移植性好的操作系統(tǒng)在支持多平臺方可移植性好的操作系統(tǒng)在支持多平臺
28、方面具有開發(fā)周期縮短、代碼可重用度高、面具有開發(fā)周期縮短、代碼可重用度高、維護(hù)工作量小等顯著優(yōu)點,所以追求良維護(hù)工作量小等顯著優(yōu)點,所以追求良好的可移植性是設(shè)計實時內(nèi)核時需要重好的可移植性是設(shè)計實時內(nèi)核時需要重點考慮的目標(biāo)之一。點考慮的目標(biāo)之一。可移植性可移植性q嵌入式軟件的移植工作分為異種處理器嵌入式軟件的移植工作分為異種處理器平臺之間的移植和同種處理器平臺的移平臺之間的移植和同種處理器平臺的移植兩種。植兩種。v一方面,硬件平臺多樣化為嵌入式實時系統(tǒng)一方面,硬件平臺多樣化為嵌入式實時系統(tǒng)提供了多種選擇,用戶希望選用的操作系統(tǒng)提供了多種選擇,用戶希望選用的操作系統(tǒng)能運(yùn)行在多種嵌入式微處理器上;
29、能運(yùn)行在多種嵌入式微處理器上;v另一方面,多數(shù)嵌入式硬件系統(tǒng)是由微處理另一方面,多數(shù)嵌入式硬件系統(tǒng)是由微處理器及其外圍系統(tǒng)電路組成的,具有相同微處器及其外圍系統(tǒng)電路組成的,具有相同微處理器的硬件系統(tǒng)可能會有多種不同的外圍電理器的硬件系統(tǒng)可能會有多種不同的外圍電路(如串行通信控制器、定時器、顯示控制路(如串行通信控制器、定時器、顯示控制器、模擬數(shù)字轉(zhuǎn)換等)。器、模擬數(shù)字轉(zhuǎn)換等)。 可移植性可移植性q對實時內(nèi)核而言,在不同平臺處理器下對實時內(nèi)核而言,在不同平臺處理器下的移植工作集中在任務(wù)切換、中斷控制的移植工作集中在任務(wù)切換、中斷控制設(shè)備和時間設(shè)備的驅(qū)動上。設(shè)備和時間設(shè)備的驅(qū)動上。q對于同類處理器
30、平臺、不同型號及不同對于同類處理器平臺、不同型號及不同外圍電路間的移植工作則更加方便,主外圍電路間的移植工作則更加方便,主要集中在對芯片級控制寄存器的操作上。要集中在對芯片級控制寄存器的操作上。 可移植性可移植性q影響內(nèi)核可移植性的主要因素影響內(nèi)核可移植性的主要因素 v編程語言編程語言v體系結(jié)構(gòu)體系結(jié)構(gòu)v代碼實現(xiàn)的技巧代碼實現(xiàn)的技巧編程語言編程語言q可移植性與編程語言有很大關(guān)系??梢浦残耘c編程語言有很大關(guān)系。v高級語言實現(xiàn)的代碼比用匯編語言實現(xiàn)相應(yīng)高級語言實現(xiàn)的代碼比用匯編語言實現(xiàn)相應(yīng)功能的代碼具有更好的移植性。功能的代碼具有更好的移植性。v另一方面,匯編語言實現(xiàn)的代碼具有更高的另一方面,匯編
31、語言實現(xiàn)的代碼具有更高的執(zhí)行效率和更緊湊的代碼空間。執(zhí)行效率和更緊湊的代碼空間。v設(shè)計內(nèi)核時,要立足系統(tǒng)整體性能和效率的設(shè)計內(nèi)核時,要立足系統(tǒng)整體性能和效率的考慮,不片面強(qiáng)調(diào)某一方面而對另一方面棄考慮,不片面強(qiáng)調(diào)某一方面而對另一方面棄之不顧。之不顧。 編程語言編程語言q在嵌入式軟件中匯編語言的使用是必不可少的。在嵌入式軟件中匯編語言的使用是必不可少的。v對一些反復(fù)運(yùn)行的代碼,使用高效、簡捷的匯編能大對一些反復(fù)運(yùn)行的代碼,使用高效、簡捷的匯編能大大減少程序的運(yùn)行時間。大減少程序的運(yùn)行時間。v匯編語言作為一種低級語言可以很方便地完成硬件的匯編語言作為一種低級語言可以很方便地完成硬件的控制操作,這是
32、匯編語言在與硬件聯(lián)系緊密的嵌入式控制操作,這是匯編語言在與硬件聯(lián)系緊密的嵌入式軟件中的一個優(yōu)點。軟件中的一個優(yōu)點。v然而匯編語言是高度不可移植的,盡可能少地使用匯然而匯編語言是高度不可移植的,盡可能少地使用匯編語言,而改用可移植性好的高級語言(如編語言,而改用可移植性好的高級語言(如C語言)語言)進(jìn)行開發(fā),可以有效地提高軟件的可移植性。進(jìn)行開發(fā),可以有效地提高軟件的可移植性。v目前,編譯技術(shù)已經(jīng)得到了很大的發(fā)展,高級語言編目前,編譯技術(shù)已經(jīng)得到了很大的發(fā)展,高級語言編譯后產(chǎn)生的可執(zhí)行代碼與匯編產(chǎn)生的代碼在性能和代譯后產(chǎn)生的可執(zhí)行代碼與匯編產(chǎn)生的代碼在性能和代碼量上都相差不大?,F(xiàn)在的高級語言編譯
33、器都提供靈碼量上都相差不大?,F(xiàn)在的高級語言編譯器都提供靈活、高效的選項,以適應(yīng)開發(fā)人員特殊的編程和調(diào)試活、高效的選項,以適應(yīng)開發(fā)人員特殊的編程和調(diào)試需求。需求。 體系結(jié)構(gòu)體系結(jié)構(gòu)q合理的體系結(jié)構(gòu)是良好移植性的基礎(chǔ)。合理的體系結(jié)構(gòu)是良好移植性的基礎(chǔ)??梢詫?nèi)核設(shè)計為三層結(jié)構(gòu):硬件無關(guān)可以將內(nèi)核設(shè)計為三層結(jié)構(gòu):硬件無關(guān)層、硬件抽象層和硬件相關(guān)層。層、硬件抽象層和硬件相關(guān)層。q內(nèi)核的移植工作集中在硬件相關(guān)層,與內(nèi)核的移植工作集中在硬件相關(guān)層,與其余兩層無關(guān),從而確保其具有良好的其余兩層無關(guān),從而確保其具有良好的可移植性??梢浦残浴?代碼實現(xiàn)的技巧代碼實現(xiàn)的技巧q代碼實現(xiàn)時可以使用一些技巧來提高可代碼
34、實現(xiàn)時可以使用一些技巧來提高可移植性,例如把不可移植的代碼和匯編移植性,例如把不可移植的代碼和匯編代碼通過宏定義和函數(shù)的形式,分類集代碼通過宏定義和函數(shù)的形式,分類集中在某幾個特定的文件之中。程序中對中在某幾個特定的文件之中。程序中對不可移植代碼的使用轉(zhuǎn)換成對函數(shù)和宏不可移植代碼的使用轉(zhuǎn)換成對函數(shù)和宏定義的使用,在以后的移植過程中,既定義的使用,在以后的移植過程中,既有利于迅速地對要修改的代碼進(jìn)行定位,有利于迅速地對要修改的代碼進(jìn)行定位,又可以方便地進(jìn)行修改,從而大大地提又可以方便地進(jìn)行修改,從而大大地提高移植的效率。高移植的效率。 代碼實現(xiàn)的技巧代碼實現(xiàn)的技巧為方便移植,考慮到編譯工具間的差
35、異,可采用下列為方便移植,考慮到編譯工具間的差異,可采用下列的數(shù)據(jù)類型重定義:的數(shù)據(jù)類型重定義:typedef signed charT_BYTE;typedef unsigned charT_UBYTE;typedef charT_CHAR;typedef signed shortT_HWORD;typedef unsigned shortT_UHWORD;typedef signed intT_WORD;typedef unsigned intT_UWORD;typedef signed longT_DWORD; typedef doubleT_DOUBLE;typedef floatT_
36、FLOAT;typedef unsigned int T_BOOL; 可剪裁、可配置性可剪裁、可配置性q嵌入式操作系統(tǒng)的開發(fā)者需要完成系統(tǒng)功能的嵌入式操作系統(tǒng)的開發(fā)者需要完成系統(tǒng)功能的全集,但是其使用者往往因為資源的限制,只全集,但是其使用者往往因為資源的限制,只要求獲得其功能的子集,剪裁掉不需要的部分。要求獲得其功能的子集,剪裁掉不需要的部分。q另外,為了滿足多種嵌入式實時系統(tǒng)的要求,另外,為了滿足多種嵌入式實時系統(tǒng)的要求,嵌入式操作系統(tǒng)還應(yīng)該能讓用戶可以方便地配嵌入式操作系統(tǒng)還應(yīng)該能讓用戶可以方便地配置它。置它。q因此,為了能滿足不同復(fù)雜程度的應(yīng)用需求,因此,為了能滿足不同復(fù)雜程度的應(yīng)用需
37、求,嵌入式操作系統(tǒng)應(yīng)該具有良好的可剪裁、可配嵌入式操作系統(tǒng)應(yīng)該具有良好的可剪裁、可配置性。置性。 可剪裁、可配置性可剪裁、可配置性q可配置與可剪裁是聯(lián)系緊密,但又有區(qū)別的兩可配置與可剪裁是聯(lián)系緊密,但又有區(qū)別的兩種特性。種特性。v可剪裁性表示系統(tǒng)在增加、卸裝功能模塊(包括操可剪裁性表示系統(tǒng)在增加、卸裝功能模塊(包括操作系統(tǒng)組件、組件中的模塊、接口庫)時僅需要做作系統(tǒng)組件、組件中的模塊、接口庫)時僅需要做少量的修改或者根本不用修改??杉舨眯砸笙到y(tǒng)少量的修改或者根本不用修改??杉舨眯砸笙到y(tǒng)中各功能模塊之間盡量不存在耦合關(guān)系。中各功能模塊之間盡量不存在耦合關(guān)系。v可配置性針對系統(tǒng)中未被卸裝的模塊
38、,根據(jù)應(yīng)用在可配置性針對系統(tǒng)中未被卸裝的模塊,根據(jù)應(yīng)用在數(shù)量、機(jī)制、工作空間、堆棧等方面的不同需求,數(shù)量、機(jī)制、工作空間、堆棧等方面的不同需求,決定系統(tǒng)的規(guī)模、功能以及內(nèi)存分配等等。例如,決定系統(tǒng)的規(guī)模、功能以及內(nèi)存分配等等。例如,用戶可以配置系統(tǒng)的任務(wù)數(shù)目、調(diào)度算法(是否采用戶可以配置系統(tǒng)的任務(wù)數(shù)目、調(diào)度算法(是否采用可搶占調(diào)度、是否采用時間片循環(huán)輪轉(zhuǎn)調(diào)度)、用可搶占調(diào)度、是否采用時間片循環(huán)輪轉(zhuǎn)調(diào)度)、任務(wù)堆棧的大小等。任務(wù)堆棧的大小等。 可剪裁、可配置性可剪裁、可配置性q內(nèi)核的剪裁性取決于模塊之間的耦合程度。耦內(nèi)核的剪裁性取決于模塊之間的耦合程度。耦合程度越小的系統(tǒng),可剪裁的力度越大。在設(shè)
39、合程度越小的系統(tǒng),可剪裁的力度越大。在設(shè)計內(nèi)核時,按照功能對系統(tǒng)模塊做比較細(xì)致地計內(nèi)核時,按照功能對系統(tǒng)模塊做比較細(xì)致地劃分,抽象出一部分公共函數(shù)作為實現(xiàn)其它功劃分,抽象出一部分公共函數(shù)作為實現(xiàn)其它功能的基礎(chǔ),這部分內(nèi)容不可被剪裁。其它功能能的基礎(chǔ),這部分內(nèi)容不可被剪裁。其它功能模塊之間比較獨立,具有良好的可剪裁性。但模塊之間比較獨立,具有良好的可剪裁性。但是,考慮到內(nèi)核本身的意義所在,一些功能單是,考慮到內(nèi)核本身的意義所在,一些功能單從技術(shù)上看可以被剪裁,但還是必須保留在內(nèi)從技術(shù)上看可以被剪裁,但還是必須保留在內(nèi)核中,這些功能包括任務(wù)管理和定時功能。因核中,這些功能包括任務(wù)管理和定時功能。因
40、此,剪裁也是有限的,有規(guī)則的。此,剪裁也是有限的,有規(guī)則的。 可剪裁、可配置性可剪裁、可配置性q用戶可以通過配置已經(jīng)選擇了的模塊,進(jìn)一步用戶可以通過配置已經(jīng)選擇了的模塊,進(jìn)一步調(diào)整系統(tǒng)的功能和規(guī)模。調(diào)整系統(tǒng)的功能和規(guī)模。v比如用戶根據(jù)操作系統(tǒng)提供的一組配置參數(shù)實現(xiàn)組件比如用戶根據(jù)操作系統(tǒng)提供的一組配置參數(shù)實現(xiàn)組件或組件中模塊的剪裁,和對系統(tǒng)對象數(shù)(最大任務(wù)數(shù)、或組件中模塊的剪裁,和對系統(tǒng)對象數(shù)(最大任務(wù)數(shù)、最大定時器數(shù)、最大信號量數(shù)、最大消息隊列數(shù)、最最大定時器數(shù)、最大信號量數(shù)、最大消息隊列數(shù)、最大內(nèi)存塊數(shù)、使用的設(shè)備數(shù)等)、各種性質(zhì)的內(nèi)存空大內(nèi)存塊數(shù)、使用的設(shè)備數(shù)等)、各種性質(zhì)的內(nèi)存空間(任
41、務(wù)堆棧、系統(tǒng)堆棧、中斷堆棧等)、調(diào)度算法、間(任務(wù)堆棧、系統(tǒng)堆棧、中斷堆棧等)、調(diào)度算法、要使用哪些要使用哪些API等的配置。等的配置。v用戶可以利用系統(tǒng)配置表為不同的應(yīng)用配置系統(tǒng),系用戶可以利用系統(tǒng)配置表為不同的應(yīng)用配置系統(tǒng),系統(tǒng)初始化時將根據(jù)配置表來初始化系統(tǒng),并進(jìn)行相關(guān)統(tǒng)初始化時將根據(jù)配置表來初始化系統(tǒng),并進(jìn)行相關(guān)的操作如加入新設(shè)備的驅(qū)動程序、加入擴(kuò)展處理等。的操作如加入新設(shè)備的驅(qū)動程序、加入擴(kuò)展處理等。當(dāng)然,為了減輕用戶配置系統(tǒng)的負(fù)擔(dān),這些配置項目當(dāng)然,為了減輕用戶配置系統(tǒng)的負(fù)擔(dān),這些配置項目都應(yīng)該提供缺省值,用戶只需在配置文件中加入要重都應(yīng)該提供缺省值,用戶只需在配置文件中加入要重新
42、設(shè)置或添加的項目。新設(shè)置或添加的項目。 可靠性可靠性q可靠性對于實時系統(tǒng)來說通常比非實時系統(tǒng)更可靠性對于實時系統(tǒng)來說通常比非實時系統(tǒng)更為重要。為重要。q在一個非實時系統(tǒng)中的一個瞬間錯誤可以通過在一個非實時系統(tǒng)中的一個瞬間錯誤可以通過簡單地重新啟動系統(tǒng)來解決,在多處理器的非簡單地重新啟動系統(tǒng)來解決,在多處理器的非實時系統(tǒng)中一個處理器的失敗可能導(dǎo)致服務(wù)的實時系統(tǒng)中一個處理器的失敗可能導(dǎo)致服務(wù)的降級,直到失敗的處理器被修復(fù)或替換。降級,直到失敗的處理器被修復(fù)或替換。q但是一個實時系統(tǒng)是以實時的方式響應(yīng)和控制但是一個實時系統(tǒng)是以實時的方式響應(yīng)和控制事件的,性能的丟失或降級可能會帶來災(zāi)難性事件的,性能的
43、丟失或降級可能會帶來災(zāi)難性的后果,從金錢損失到主設(shè)備的破壞,甚至?xí)暮蠊?,從金錢損失到主設(shè)備的破壞,甚至?xí)适?。喪失生命?可靠性可靠性q為保證應(yīng)用系統(tǒng)運(yùn)行的可靠性,嵌入式實時內(nèi)為保證應(yīng)用系統(tǒng)運(yùn)行的可靠性,嵌入式實時內(nèi)核可以提供諸多機(jī)制供用戶使用,包括異步信核可以提供諸多機(jī)制供用戶使用,包括異步信號、定時器、優(yōu)先級繼承、優(yōu)先級天花板、異號、定時器、優(yōu)先級繼承、優(yōu)先級天花板、異常(或出錯)處理、用戶擴(kuò)展和內(nèi)存保護(hù)等。常(或出錯)處理、用戶擴(kuò)展和內(nèi)存保護(hù)等。q嵌入式實時系統(tǒng)一般不具備通用的人機(jī)接口,嵌入式實時系統(tǒng)一般不具備通用的人機(jī)接口,運(yùn)行時人不能干預(yù)其操作,因此系統(tǒng)的異常運(yùn)行時人不能干預(yù)其
44、操作,因此系統(tǒng)的異常(或出錯)處理能力是其可靠性很關(guān)鍵的因素(或出錯)處理能力是其可靠性很關(guān)鍵的因素之一。嵌入式軟件通常被寫入只讀存儲介質(zhì)中,之一。嵌入式軟件通常被寫入只讀存儲介質(zhì)中,系統(tǒng)一上電就開始運(yùn)行它,不允許軟件臨時從系統(tǒng)一上電就開始運(yùn)行它,不允許軟件臨時從盤上裝入,因此要求內(nèi)核能提供一定的異常盤上裝入,因此要求內(nèi)核能提供一定的異常(或出錯)處理機(jī)制。(或出錯)處理機(jī)制??煽啃钥煽啃詑異常處理為用戶提供了處理應(yīng)用程序造成的非異常處理為用戶提供了處理應(yīng)用程序造成的非正常情況的機(jī)制,而對于內(nèi)核運(yùn)行時出現(xiàn)的錯正常情況的機(jī)制,而對于內(nèi)核運(yùn)行時出現(xiàn)的錯誤,異常處理可以記錄錯誤的來源,判斷錯誤誤,異
45、常處理可以記錄錯誤的來源,判斷錯誤的性質(zhì),并消除錯誤,使系統(tǒng)繼續(xù)正常運(yùn)行,的性質(zhì),并消除錯誤,使系統(tǒng)繼續(xù)正常運(yùn)行,或終止運(yùn)行以避免帶來更大損失。或終止運(yùn)行以避免帶來更大損失。q然而,由于應(yīng)用環(huán)境千差萬別,內(nèi)核不可能為然而,由于應(yīng)用環(huán)境千差萬別,內(nèi)核不可能為每一種錯誤都提供專用的異常處理,而只能夠每一種錯誤都提供專用的異常處理,而只能夠提供上述標(biāo)準(zhǔn)的異常處理。提供上述標(biāo)準(zhǔn)的異常處理。q為了使用戶能夠針對自己應(yīng)用的實際情況設(shè)計為了使用戶能夠針對自己應(yīng)用的實際情況設(shè)計適應(yīng)系統(tǒng)需要的異常處理,內(nèi)核可以提供標(biāo)準(zhǔn)適應(yīng)系統(tǒng)需要的異常處理,內(nèi)核可以提供標(biāo)準(zhǔn)異常處理的擴(kuò)展接口。異常處理的擴(kuò)展接口。 應(yīng)用編程接口
46、應(yīng)用編程接口q 每一個操作系統(tǒng)提供的系統(tǒng)調(diào)用(應(yīng)用編程接口每一個操作系統(tǒng)提供的系統(tǒng)調(diào)用(應(yīng)用編程接口API)的功能和種類都不同。當(dāng)然,對于一個操作系統(tǒng)來說,的功能和種類都不同。當(dāng)然,對于一個操作系統(tǒng)來說,它提供的系統(tǒng)調(diào)用越多、功能越強(qiáng),也就越能對應(yīng)用程它提供的系統(tǒng)調(diào)用越多、功能越強(qiáng),也就越能對應(yīng)用程序的開發(fā)提供高效的支持,同時也會減少應(yīng)用程序的維序的開發(fā)提供高效的支持,同時也會減少應(yīng)用程序的維護(hù)工作量。相反,一個操作系統(tǒng)的系統(tǒng)調(diào)用越少越單一,護(hù)工作量。相反,一個操作系統(tǒng)的系統(tǒng)調(diào)用越少越單一,則應(yīng)用程序就因為要做更多的工作而變得更復(fù)雜,引入則應(yīng)用程序就因為要做更多的工作而變得更復(fù)雜,引入錯誤的可
47、能性就越高。錯誤的可能性就越高。q 為了適應(yīng)不斷復(fù)雜的應(yīng)用程序開發(fā)需求,操作系統(tǒng)設(shè)計為了適應(yīng)不斷復(fù)雜的應(yīng)用程序開發(fā)需求,操作系統(tǒng)設(shè)計的系統(tǒng)調(diào)用就越來越多,越來越復(fù)雜,功能也越來越強(qiáng)的系統(tǒng)調(diào)用就越來越多,越來越復(fù)雜,功能也越來越強(qiáng)大。嵌入式操作系統(tǒng)的應(yīng)用領(lǐng)域非常廣,簡單的可以應(yīng)大。嵌入式操作系統(tǒng)的應(yīng)用領(lǐng)域非常廣,簡單的可以應(yīng)用在調(diào)制解調(diào)器這類設(shè)備上,復(fù)雜的可以應(yīng)用在衛(wèi)星地用在調(diào)制解調(diào)器這類設(shè)備上,復(fù)雜的可以應(yīng)用在衛(wèi)星地面通信接收站中。這就決定了嵌入式操作系統(tǒng)所提供的面通信接收站中。這就決定了嵌入式操作系統(tǒng)所提供的系統(tǒng)調(diào)用的數(shù)量和功能是因應(yīng)用不同而不同的,它具有系統(tǒng)調(diào)用的數(shù)量和功能是因應(yīng)用不同而不
48、同的,它具有可剪裁性和可配置性??杉舨眯院涂膳渲眯?。 應(yīng)用編程接口應(yīng)用編程接口q提供面向行業(yè)的接口標(biāo)準(zhǔn)是嵌入式實時操作系提供面向行業(yè)的接口標(biāo)準(zhǔn)是嵌入式實時操作系統(tǒng)的一個發(fā)展趨勢:統(tǒng)的一個發(fā)展趨勢:v盡管可剪裁性是嵌入式操作系統(tǒng)的一個非常重要的盡管可剪裁性是嵌入式操作系統(tǒng)的一個非常重要的特性,但是任何一個嵌入式操作系統(tǒng)都不可能從具特性,但是任何一個嵌入式操作系統(tǒng)都不可能從具有各種完善功能、代碼達(dá)幾百有各種完善功能、代碼達(dá)幾百KB的操作系統(tǒng),剪的操作系統(tǒng),剪裁到只具有實時調(diào)度和信號量操作的幾裁到只具有實時調(diào)度和信號量操作的幾KB的代碼。的代碼。所以嵌入式操作系統(tǒng)只能面向?qū)嶋H的被嵌入系統(tǒng)的所以嵌入式
49、操作系統(tǒng)只能面向?qū)嶋H的被嵌入系統(tǒng)的具體要求,確定并提供最有效的系統(tǒng)調(diào)用。根據(jù)行具體要求,確定并提供最有效的系統(tǒng)調(diào)用。根據(jù)行業(yè)的要求確定業(yè)的要求確定API的定義,既方便行業(yè)的應(yīng)用的可的定義,既方便行業(yè)的應(yīng)用的可移植性,又能減少操作系統(tǒng)的代碼量。移植性,又能減少操作系統(tǒng)的代碼量。 應(yīng)用編程接口應(yīng)用編程接口v目前嵌入式實時操作系統(tǒng)的目前嵌入式實時操作系統(tǒng)的API沒有形成統(tǒng)一的標(biāo)沒有形成統(tǒng)一的標(biāo)準(zhǔn),各個廠商都定義了各自的一套準(zhǔn),各個廠商都定義了各自的一套API。 雖然有些實時操作系統(tǒng)提供了與雖然有些實時操作系統(tǒng)提供了與POSIX(a Portable Operating System Interfac
50、e based on UNIX)接口標(biāo)準(zhǔn)兼)接口標(biāo)準(zhǔn)兼容的容的API調(diào)用,但也僅僅是實現(xiàn)了調(diào)用,但也僅僅是實現(xiàn)了POSIX的一個子集,并的一個子集,并且還同時提供一套非且還同時提供一套非POSIX的系統(tǒng)調(diào)用集。的系統(tǒng)調(diào)用集。 POSIX本身是以類本身是以類Unix為基礎(chǔ)開發(fā)的,它實際上代表了為基礎(chǔ)開發(fā)的,它實際上代表了UNIX類型的操作系統(tǒng)用戶接口的國際標(biāo)準(zhǔn)集,以使應(yīng)用類型的操作系統(tǒng)用戶接口的國際標(biāo)準(zhǔn)集,以使應(yīng)用程序可以從一個系統(tǒng)移植到另一個系統(tǒng)。針對實時領(lǐng)域的程序可以從一個系統(tǒng)移植到另一個系統(tǒng)。針對實時領(lǐng)域的需要,專門定義了需要,專門定義了POSIX 1003.1c和和POSIX 1003.
51、1d接口標(biāo)接口標(biāo)準(zhǔn)。由于準(zhǔn)。由于POSIX所涉及的范圍十分廣闊,內(nèi)容繁多,嵌入所涉及的范圍十分廣闊,內(nèi)容繁多,嵌入式實時操作系統(tǒng)為保證精簡,不可能提供對式實時操作系統(tǒng)為保證精簡,不可能提供對POSIX所有定所有定義的支持。直接套用義的支持。直接套用POSIX標(biāo)準(zhǔn)會導(dǎo)致系統(tǒng)過于龐大,違標(biāo)準(zhǔn)會導(dǎo)致系統(tǒng)過于龐大,違背嵌入式實時操作系統(tǒng)小巧的特征。背嵌入式實時操作系統(tǒng)小巧的特征。 應(yīng)用編程接口應(yīng)用編程接口v通常,嵌入式系統(tǒng)的開發(fā)人員不一定是從事計算機(jī)行通常,嵌入式系統(tǒng)的開發(fā)人員不一定是從事計算機(jī)行業(yè)的專業(yè)人員,嵌入式系統(tǒng)硬件和軟件僅僅是他們實業(yè)的專業(yè)人員,嵌入式系統(tǒng)硬件和軟件僅僅是他們實現(xiàn)自己特定行業(yè)
52、應(yīng)用的工具。對于嵌入式操作系統(tǒng)廠現(xiàn)自己特定行業(yè)應(yīng)用的工具。對于嵌入式操作系統(tǒng)廠商而言,可以按照不同的行業(yè)標(biāo)準(zhǔn)或面向不同行業(yè)的商而言,可以按照不同的行業(yè)標(biāo)準(zhǔn)或面向不同行業(yè)的需求開發(fā)特定的需求開發(fā)特定的API,將下層通用,將下層通用API封裝起來并進(jìn)封裝起來并進(jìn)行必要的擴(kuò)展。對于行業(yè)而言,則需要制定一些標(biāo)準(zhǔn),行必要的擴(kuò)展。對于行業(yè)而言,則需要制定一些標(biāo)準(zhǔn),以便操作系統(tǒng)開發(fā)商能夠遵循這些標(biāo)準(zhǔn),提供面向行以便操作系統(tǒng)開發(fā)商能夠遵循這些標(biāo)準(zhǔn),提供面向行業(yè)的版本,既為行業(yè)提供了多種選擇的機(jī)會,也有利業(yè)的版本,既為行業(yè)提供了多種選擇的機(jī)會,也有利于保護(hù)用戶在上層軟件上的投資。于保護(hù)用戶在上層軟件上的投資。
53、第二節(jié)第二節(jié)嵌入式實時內(nèi)核的功能嵌入式實時內(nèi)核的功能任務(wù)管理任務(wù)管理中斷管理中斷管理時間管理時間管理對共享資源的互斥管理對共享資源的互斥管理同步與通信管理同步與通信管理內(nèi)存管理內(nèi)存管理I/O管理管理出錯處理出錯處理用戶擴(kuò)展管理用戶擴(kuò)展管理電源管理電源管理從某種意義上說,操作系統(tǒng)是計算機(jī)的一個擴(kuò)展,它從某種意義上說,操作系統(tǒng)是計算機(jī)的一個擴(kuò)展,它賦予了計算機(jī)更多的功能;從另一個角度看,操作系賦予了計算機(jī)更多的功能;從另一個角度看,操作系統(tǒng)也是計算機(jī)系統(tǒng)的資源管理者。統(tǒng)也是計算機(jī)系統(tǒng)的資源管理者。 一般來講,嵌入式實時操作系統(tǒng)內(nèi)核主要有如下功能:一般來講,嵌入式實時操作系統(tǒng)內(nèi)核主要有如下功能: v
54、 任務(wù)管理任務(wù)管理 v 中斷管理中斷管理v 時間管理時間管理v 對共享資源的互斥管理對共享資源的互斥管理v 任務(wù)間的同步與通信任務(wù)間的同步與通信v 內(nèi)存管理內(nèi)存管理v I/O管理管理v 出錯處理出錯處理v 用戶擴(kuò)展管理用戶擴(kuò)展管理v 電源管理電源管理 任務(wù)管理任務(wù)管理q在當(dāng)前的嵌入式應(yīng)用中,特別是對復(fù)雜在當(dāng)前的嵌入式應(yīng)用中,特別是對復(fù)雜的應(yīng)用而言,一般采用多任務(wù)的軟件結(jié)的應(yīng)用而言,一般采用多任務(wù)的軟件結(jié)構(gòu)實現(xiàn),那么由誰來對這些任務(wù)實施有構(gòu)實現(xiàn),那么由誰來對這些任務(wù)實施有效的管理、使得它們能夠協(xié)調(diào)地工作?效的管理、使得它們能夠協(xié)調(diào)地工作?內(nèi)核的任務(wù)管理功能將滿足這個需求。內(nèi)核的任務(wù)管理功能將滿足
55、這個需求。q在多任務(wù)系統(tǒng)中,任務(wù)是被調(diào)度執(zhí)行和在多任務(wù)系統(tǒng)中,任務(wù)是被調(diào)度執(zhí)行和競爭資源的基本實體單元,實時內(nèi)核最競爭資源的基本實體單元,實時內(nèi)核最基本的功能是任務(wù)管理?;镜墓δ苁侨蝿?wù)管理。 任務(wù)管理任務(wù)管理q任務(wù)管理主要包括創(chuàng)建任務(wù)、刪除任務(wù)、任務(wù)管理主要包括創(chuàng)建任務(wù)、刪除任務(wù)、改變?nèi)蝿?wù)狀態(tài)(或改變?nèi)蝿?wù)運(yùn)行軌跡,改變?nèi)蝿?wù)狀態(tài)(或改變?nèi)蝿?wù)運(yùn)行軌跡,比如啟動與重新啟動任務(wù)、掛起與恢復(fù)比如啟動與重新啟動任務(wù)、掛起與恢復(fù)任務(wù)、改變優(yōu)先級、使任務(wù)睡眠等)、任務(wù)、改變優(yōu)先級、使任務(wù)睡眠等)、查詢?nèi)蝿?wù)狀態(tài)(比如優(yōu)先級、屬性)等查詢?nèi)蝿?wù)狀態(tài)(比如優(yōu)先級、屬性)等功能,其核心是任務(wù)調(diào)度。功能,其核心是任務(wù)調(diào)
56、度。q任務(wù)調(diào)度策略是否適合嵌入式應(yīng)用的特任務(wù)調(diào)度策略是否適合嵌入式應(yīng)用的特定要求,對于應(yīng)用的實時性能至關(guān)重要。定要求,對于應(yīng)用的實時性能至關(guān)重要。 中斷管理中斷管理q中斷本身是一種異步機(jī)制,中斷服務(wù)程中斷本身是一種異步機(jī)制,中斷服務(wù)程序(序(ISR)不需要內(nèi)核的調(diào)度就可以執(zhí)行。)不需要內(nèi)核的調(diào)度就可以執(zhí)行。但是在嵌入式實時應(yīng)用中,要求但是在嵌入式實時應(yīng)用中,要求ISR和其和其它應(yīng)用任務(wù)之間協(xié)同工作,以快速、合它應(yīng)用任務(wù)之間協(xié)同工作,以快速、合理地響應(yīng)外部事件,并完成后續(xù)的處理理地響應(yīng)外部事件,并完成后續(xù)的處理過程。過程。q內(nèi)核對中斷提供的管理功能使得這種協(xié)內(nèi)核對中斷提供的管理功能使得這種協(xié)同機(jī)
57、制能夠?qū)崿F(xiàn)。同機(jī)制能夠?qū)崿F(xiàn)。中斷管理中斷管理q一般來講,內(nèi)核的中斷管理有如下功能:一般來講,內(nèi)核的中斷管理有如下功能:v安裝指定中斷的服務(wù)程序,使得一個硬件中安裝指定中斷的服務(wù)程序,使得一個硬件中斷和一段例程相關(guān)聯(lián)。當(dāng)中斷發(fā)生時,系統(tǒng)斷和一段例程相關(guān)聯(lián)。當(dāng)中斷發(fā)生時,系統(tǒng)做中斷現(xiàn)場的保存和恢復(fù),并且轉(zhuǎn)到相應(yīng)的做中斷現(xiàn)場的保存和恢復(fù),并且轉(zhuǎn)到相應(yīng)的ISR中執(zhí)行。中執(zhí)行。ISR負(fù)責(zé)處理中斷,清除中斷負(fù)責(zé)處理中斷,清除中斷標(biāo)記以使中斷能夠再次發(fā)生(與具體的中斷標(biāo)記以使中斷能夠再次發(fā)生(與具體的中斷控制器相關(guān)),以及進(jìn)行設(shè)備操作(如果控制器相關(guān)),以及進(jìn)行設(shè)備操作(如果有)。有)。 中斷管理中斷管理v
58、為某些設(shè)備提供缺省的中斷處理程序。為某些設(shè)備提供缺省的中斷處理程序。 v將內(nèi)核內(nèi)部支持的各級中斷映射到目標(biāo)處理將內(nèi)核內(nèi)部支持的各級中斷映射到目標(biāo)處理器的各級中斷上。器的各級中斷上。v在在ISR中可以使用內(nèi)核提供的功能調(diào)用,以中可以使用內(nèi)核提供的功能調(diào)用,以便完成與任務(wù)的通信。便完成與任務(wù)的通信。v提供屏蔽與使能中斷的系統(tǒng)調(diào)用,使應(yīng)用能提供屏蔽與使能中斷的系統(tǒng)調(diào)用,使應(yīng)用能夠根據(jù)需要在運(yùn)行時關(guān)閉和打開中斷。夠根據(jù)需要在運(yùn)行時關(guān)閉和打開中斷。 中斷管理中斷管理q對中斷的處理包括中斷前導(dǎo)、用戶中斷對中斷的處理包括中斷前導(dǎo)、用戶中斷程序、中斷退出三個部分,各部分的功程序、中斷退出三個部分,各部分的功能
59、如下:能如下:v中斷前導(dǎo):完成現(xiàn)場保護(hù),調(diào)用系統(tǒng)的中斷中斷前導(dǎo):完成現(xiàn)場保護(hù),調(diào)用系統(tǒng)的中斷處理程序,最后調(diào)用用戶的中斷程序。處理程序,最后調(diào)用用戶的中斷程序。 v用戶中斷程序:完成用戶自己的中斷處理。用戶中斷程序:完成用戶自己的中斷處理。v中斷退出:恢復(fù)現(xiàn)場并進(jìn)行任務(wù)調(diào)度方面的中斷退出:恢復(fù)現(xiàn)場并進(jìn)行任務(wù)調(diào)度方面的相關(guān)處理。相關(guān)處理。 時間管理時間管理q內(nèi)核的時間管理功能為應(yīng)用系統(tǒng)的實時內(nèi)核的時間管理功能為應(yīng)用系統(tǒng)的實時響應(yīng)提供支持,保證其實時性、正確性,響應(yīng)提供支持,保證其實時性、正確性,以提高整個嵌入式系統(tǒng)的實時工作能力。以提高整個嵌入式系統(tǒng)的實時工作能力。q與時間相關(guān)的管理包括時鐘管理
60、和定時與時間相關(guān)的管理包括時鐘管理和定時器管理。器管理。q時鐘管理部分的功能可以包括:時鐘管理部分的功能可以包括: v維護(hù)系統(tǒng)時基,執(zhí)行與系統(tǒng)時基相關(guān)的處理維護(hù)系統(tǒng)時基,執(zhí)行與系統(tǒng)時基相關(guān)的處理或操作,比如任務(wù)延時、資源限時等待等;或操作,比如任務(wù)延時、資源限時等待等;v設(shè)置和取得時間信息,包括以系統(tǒng)時基為單設(shè)置和取得時間信息,包括以系統(tǒng)時基為單位的時間和日歷時間。位的時間和日歷時間。 對共享資源的互斥管理對共享資源的互斥管理q與共享資源打交道時,實現(xiàn)資源互斥訪與共享資源打交道時,實現(xiàn)資源互斥訪問的方法很多,不同之處在于互斥的范問的方法很多,不同之處在于互斥的范圍和程度。圍和程度。q這些方法包
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球晶圓檢測用物鏡行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國鉆頭修磨機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球醫(yī)療器械用注塑機(jī)行業(yè)調(diào)研及趨勢分析報告
- 主講人鄭長花
- 第06講 我們生活的大洲-亞洲(解析版)
- 2025原料采購合同的模板
- 2025個人保證擔(dān)保借款合同
- 門面房房屋租賃合同范本
- 工地配餐合同協(xié)議書范本
- it運(yùn)維外包服務(wù)合同
- 稅收流失論文-我國個人所得稅稅收流失問題及對策研究
- 長榮股份:投資性房地產(chǎn)公允價值評估報告
- 2022年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)試題及答案解析
- 銀行內(nèi)部舉報管理規(guī)定
- 平面幾何強(qiáng)化訓(xùn)練題集:初中分冊數(shù)學(xué)練習(xí)題
- 項目獎金分配獎勵制度和方案完整版
- 支氣管鏡試題
- 送達(dá)地址確認(rèn)書(訴訟類范本)
- 陰道鏡幻燈課件
- 現(xiàn)代漢語詞匯學(xué)精選課件
- 上海音樂學(xué)院 樂理試題
評論
0/150
提交評論