




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)CC/OS/OS原理與實(shí)踐原理與實(shí)踐教材教材 :嵌入式實(shí)時(shí)操作系統(tǒng):嵌入式實(shí)時(shí)操作系統(tǒng)C/OS分析與實(shí)踐分析與實(shí)踐電子工業(yè)出版社電子工業(yè)出版社 作者作者:盧有亮盧有亮 電子科技大學(xué)能源科學(xué)與工程學(xué)院電子科技大學(xué)能源科學(xué)與工程學(xué)院作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐引言:關(guān)于圖書(shū) 1.專業(yè)說(shuō)明 考慮到各專業(yè)讀者學(xué)習(xí)方向不同,有些已經(jīng)
2、學(xué)習(xí)過(guò)操作系統(tǒng)原理,對(duì)一般的操作系統(tǒng)原理有一定的認(rèn)識(shí),有些電子專業(yè)的讀者并沒(méi)有深入學(xué)習(xí)過(guò)操作系統(tǒng)原理,另外有些讀者對(duì)C語(yǔ)言掌握的程度并不太高,因此本書(shū)采用由淺入深,層層推進(jìn)的方 在第一章給出實(shí)時(shí)操作系統(tǒng)的基礎(chǔ),為以后各章的學(xué)習(xí)打下基礎(chǔ),滿足未學(xué)習(xí)過(guò)操作系統(tǒng)的讀者,而學(xué)習(xí)過(guò)操作系統(tǒng)的讀者也要掌握本章的內(nèi)容,因?yàn)榍度胧綄?shí)時(shí)操作系統(tǒng)有其個(gè)性。代碼的講解上在第2章任務(wù)管理的部分盡量詳盡,從第3章中斷和時(shí)間管理開(kāi)始,因?yàn)樽x者已經(jīng)具備了或提高了C語(yǔ)言的能力,對(duì)讀者已經(jīng)掌握的內(nèi)容就不贅述,但對(duì)新的難點(diǎn)仍給以詳盡解析 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作
3、系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 2.關(guān)于實(shí)踐 實(shí)踐是檢驗(yàn)真理的標(biāo)準(zhǔn),所學(xué)的知識(shí)必須結(jié)合實(shí)際。除給出在基于Nios II的FPGA系統(tǒng)上移植,前面各章例子都是通過(guò)將C/OS移植到PC中,在虛擬的平臺(tái)下運(yùn)行C/OS來(lái)得到印證。所有代碼都包含在VC的一個(gè)工程中,打開(kāi)工程文件就可以看到結(jié)構(gòu)清晰的源代碼,因此非常適合讀者學(xué)習(xí)。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐關(guān)于圖書(shū)3學(xué)習(xí)什么 通過(guò)本書(shū)的學(xué)習(xí),應(yīng)能較為全面、深入的掌握嵌入式實(shí)時(shí)操作系統(tǒng)的基本原理,能夠讀懂讀通C/OS的包括內(nèi)核、任務(wù)管理、時(shí)
4、間和中斷管理、信號(hào)量管理、互斥信號(hào)量管理、事件標(biāo)志組管理、消息郵箱管理、消息隊(duì)列管理、內(nèi)存管理的源代碼,能將C/OS移植到不同平臺(tái)中去,并能在移植的過(guò)程中知其然又知其所以然,不會(huì)出現(xiàn)在沒(méi)有掌握C/OS而強(qiáng)做移植時(shí)出現(xiàn)的困難和錯(cuò)誤。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐關(guān)于圖書(shū)4章節(jié)介紹 第一章是操作系統(tǒng)和嵌入式實(shí)時(shí)操作系統(tǒng)的基本原理,第一章是操作系統(tǒng)和嵌入式實(shí)時(shí)操作系統(tǒng)的基本原理,對(duì)于對(duì)原理掌握已經(jīng)比較好的有一定基礎(chǔ)的讀者可以選對(duì)于對(duì)原理掌握已經(jīng)比較好的有一定基礎(chǔ)的讀者可以選擇跳過(guò)或略讀。擇跳過(guò)或
5、略讀。 第二章是任務(wù)管理,是基本內(nèi)容,需要對(duì)數(shù)據(jù)結(jié)構(gòu)和源第二章是任務(wù)管理,是基本內(nèi)容,需要對(duì)數(shù)據(jù)結(jié)構(gòu)和源代碼仔細(xì)體會(huì)。代碼仔細(xì)體會(huì)。 第三章是時(shí)間和中斷管理,時(shí)間管理包括一些函數(shù),中第三章是時(shí)間和中斷管理,時(shí)間管理包括一些函數(shù),中斷管理主要是中斷的流程。斷管理主要是中斷的流程。 第四章、第五章是事件和消息部分,包含了各種事件和第四章、第五章是事件和消息部分,包含了各種事件和消息機(jī)制。消息機(jī)制。 第六章是內(nèi)存管理。第六章是內(nèi)存管理。 第七章是移植的流程分析和在虛擬平臺(tái)以及具有軟核的第七章是移植的流程分析和在虛擬平臺(tái)以及具有軟核的FPGA下的移植。下的移植。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全
6、部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐5.先期知識(shí) 學(xué)習(xí)本課程的先前知識(shí)是:C語(yǔ)言,匯編,簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)??梢酝綄W(xué)習(xí)微機(jī)原理或單片機(jī)、DSP等。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐關(guān)于圖書(shū):6.PPT及軟件下載與視頻1. 為方便讀者學(xué)習(xí),在電子工業(yè)出版社網(wǎng)站提供可在VC下編譯的完整源代碼,包括例子程序的代碼。源代碼及PPT可在電子工業(yè)出版社網(wǎng)站http:/ 也可通過(guò)郵箱聯(lián)系筆者。3. 讀者還可以到網(wǎng)站下載C/OS操作系統(tǒng)的源代碼及查找相關(guān)
7、資料4. 讀者還可以通過(guò)作者名或UCOS在百度視頻找到本書(shū)作者提供的的教學(xué)視頻(時(shí)間有限做的不好請(qǐng)?jiān)彛┳髡弑R有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐感謝支持感謝支持 書(shū)上有路勤為徑書(shū)上有路勤為徑 學(xué)海無(wú)涯苦作舟學(xué)海無(wú)涯苦作舟 購(gòu)買(mǎi)本人圖書(shū)的朋友,請(qǐng)不吝發(fā)表評(píng)購(gòu)買(mǎi)本人圖書(shū)的朋友,請(qǐng)不吝發(fā)表評(píng)價(jià)和建議!在此表示感謝!價(jià)和建議!在此表示感謝!作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐關(guān)于C/OS-II一一. .要高效的開(kāi)
8、發(fā)嵌入式系統(tǒng),就離不開(kāi)嵌入式操作系要高效的開(kāi)發(fā)嵌入式系統(tǒng),就離不開(kāi)嵌入式操作系統(tǒng),一方面,高實(shí)時(shí)性的操作系統(tǒng)軟件是嵌入式軟件統(tǒng),一方面,高實(shí)時(shí)性的操作系統(tǒng)軟件是嵌入式軟件的基本要求。另一方面,嵌入式軟件開(kāi)發(fā)要想走向標(biāo)的基本要求。另一方面,嵌入式軟件開(kāi)發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。 二二. C. C/OS/OS正是這樣的操作系統(tǒng),它是高實(shí)時(shí)性,多正是這樣的操作系統(tǒng),它是高實(shí)時(shí)性,多任務(wù)的操作系統(tǒng),且是源代碼對(duì)非商業(yè)用途開(kāi)放的操任務(wù)的操作系統(tǒng),且是源代碼對(duì)非商業(yè)用途開(kāi)放的操作系統(tǒng)作系統(tǒng) 三三. C. C/OS/OS適用于嵌入式開(kāi)發(fā),并已在各領(lǐng)域得到
9、廣適用于嵌入式開(kāi)發(fā),并已在各領(lǐng)域得到廣泛的應(yīng)用并獲得認(rèn)可。在百度上搜索泛的應(yīng)用并獲得認(rèn)可。在百度上搜索ucosucos, ,得到的信息得到的信息條數(shù)約條數(shù)約1,250,0001,250,000條。條。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐章節(jié)介紹 第一章是操作系統(tǒng)和嵌入式實(shí)時(shí)操作系統(tǒng)的基本原理。 第二章是任務(wù)管理,是基本內(nèi)容,需要對(duì)數(shù)據(jù)結(jié)構(gòu)和源代碼仔細(xì)體會(huì)。 第三章是時(shí)間和中斷管理,時(shí)間管理包括一些函數(shù),中斷管理主要是中斷的流程。 第四章、第五章是事件和消息部分,包含了各種事件和消息機(jī)制。 第六章
10、是內(nèi)存管理。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐第一章第一章 實(shí)時(shí)操作系統(tǒng)基礎(chǔ)實(shí)時(shí)操作系統(tǒng)基礎(chǔ) 1.1 操作系統(tǒng)概述 1.2 實(shí)時(shí)操作系統(tǒng)概述 1.3任務(wù) 1.4基于優(yōu)先級(jí)的不可剝奪內(nèi)核 1.5同步與通信 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1 1.1 操作系統(tǒng)概述操作系統(tǒng)概述1. 1.1 1. 1.1 什么是操作系統(tǒng)什么是操作系統(tǒng)操作系統(tǒng)操作系統(tǒng)OS(Operating System)是裸機(jī)上的
11、第)是裸機(jī)上的第一層軟件。操作系統(tǒng)是計(jì)一層軟件。操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件,是硬件的第一層封軟件,是硬件的第一層封裝與抽象,在計(jì)算機(jī)系統(tǒng)裝與抽象,在計(jì)算機(jī)系統(tǒng)中占據(jù)著重要的地位,所中占據(jù)著重要的地位,所有其他的系統(tǒng)軟件與應(yīng)用有其他的系統(tǒng)軟件與應(yīng)用軟件都依賴于操作系統(tǒng)的軟件都依賴于操作系統(tǒng)的支持與服務(wù)。除提供編程支持與服務(wù)。除提供編程接口,操作系統(tǒng)還承擔(dān)著接口,操作系統(tǒng)還承擔(dān)著任務(wù)管理、事件管理和消任務(wù)管理、事件管理和消息通信、息通信、CPU管理、內(nèi)存管理、內(nèi)存管理、管理、IO管理等核心功能。管理等核心功能。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全
12、部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1 1.1 操作系統(tǒng)概述操作系統(tǒng)概述1. 1. 2 1. 1. 2 操作系統(tǒng)基本功能操作系統(tǒng)基本功能1.任務(wù)管理任務(wù)管理任務(wù)是程序的一次執(zhí)行。任務(wù)可以任務(wù)是程序的一次執(zhí)行。任務(wù)可以分為系統(tǒng)任務(wù)和用戶任務(wù)。系統(tǒng)任分為系統(tǒng)任務(wù)和用戶任務(wù)。系統(tǒng)任務(wù)是操作系統(tǒng)本身的任務(wù),如操作務(wù)是操作系統(tǒng)本身的任務(wù),如操作系統(tǒng)的主程序,時(shí)鐘中斷服務(wù)程序,系統(tǒng)的主程序,時(shí)鐘中斷服務(wù)程序,如后面要講到的空閑任務(wù)和統(tǒng)計(jì)任如后面要講到的空閑任務(wù)和統(tǒng)計(jì)任務(wù)等。用戶任務(wù)是用戶應(yīng)用程序的務(wù)等。用戶任務(wù)是用戶應(yīng)用程序的運(yùn)行,如用戶設(shè)計(jì)的計(jì)算器軟件的運(yùn)
13、行,如用戶設(shè)計(jì)的計(jì)算器軟件的一次執(zhí)行或一次執(zhí)行或WORD軟件的運(yùn)行,軟件的運(yùn)行,如本書(shū)中給出的一些用戶任務(wù)。這如本書(shū)中給出的一些用戶任務(wù)。這些任務(wù)都需要任務(wù)管理部分來(lái)管些任務(wù)都需要任務(wù)管理部分來(lái)管理。理。2.CPU管理管理CPU管理的含義在于多任務(wù)管理的含義在于多任務(wù)OS對(duì)對(duì)CPU的分配,也就是分配對(duì)的分配,也就是分配對(duì)CPU的所有權(quán),簡(jiǎn)單說(shuō),哪個(gè)軟件正在的所有權(quán),簡(jiǎn)單說(shuō),哪個(gè)軟件正在運(yùn)行,占有運(yùn)行,占有CPU。可以把它歸入。可以把它歸入任務(wù)管理。任務(wù)管理。3.內(nèi)存管理內(nèi)存管理內(nèi)存是任務(wù)的生存空間。內(nèi)存管理內(nèi)存是任務(wù)的生存空間。內(nèi)存管理用于給任務(wù)分配內(nèi)存空間,相應(yīng)的,用于給任務(wù)分配內(nèi)存空間,相
14、應(yīng)的,在任務(wù)結(jié)束后釋放內(nèi)存空間。在任務(wù)結(jié)束后釋放內(nèi)存空間。4.文件管理文件管理文件管理系統(tǒng)是實(shí)現(xiàn)對(duì)文件的統(tǒng)一文件管理系統(tǒng)是實(shí)現(xiàn)對(duì)文件的統(tǒng)一管理,是對(duì)文件存儲(chǔ)器的存儲(chǔ)空間管理,是對(duì)文件存儲(chǔ)器的存儲(chǔ)空間進(jìn)行組織,分配和回收,負(fù)責(zé)文件進(jìn)行組織,分配和回收,負(fù)責(zé)文件的存儲(chǔ),檢索,共享和保護(hù)。從用的存儲(chǔ),檢索,共享和保護(hù)。從用戶角度來(lái)看,文件系統(tǒng)主要是實(shí)現(xiàn)戶角度來(lái)看,文件系統(tǒng)主要是實(shí)現(xiàn)按名取存按名取存,文件系統(tǒng)的用戶只要,文件系統(tǒng)的用戶只要知道所需文件的文件名,就可存取知道所需文件的文件名,就可存取文件中的信息,而無(wú)需知道這些文文件中的信息,而無(wú)需知道這些文件究竟存放在什么地方。件究竟存放在什么地方。
15、5.IO設(shè)備管理設(shè)備管理管理系統(tǒng)中的各種硬件設(shè)備,如打管理系統(tǒng)中的各種硬件設(shè)備,如打印機(jī),顯示器,硬盤(pán)等。很明顯,印機(jī),顯示器,硬盤(pán)等。很明顯,用戶應(yīng)用程序應(yīng)該調(diào)用用戶應(yīng)用程序應(yīng)該調(diào)用IO設(shè)備管理設(shè)備管理模塊提供的模塊提供的API來(lái)對(duì)設(shè)備進(jìn)行操作,來(lái)對(duì)設(shè)備進(jìn)行操作,而不是直接讀寫(xiě)硬件。而不是直接讀寫(xiě)硬件。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1.2 2實(shí)時(shí)操作系統(tǒng)概述實(shí)時(shí)操作系統(tǒng)概述實(shí)時(shí)操作系統(tǒng)RTOS(Real Time Operating System)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接收并
16、以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來(lái)控制生產(chǎn)過(guò)程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)的本質(zhì)區(qū)別就在于實(shí)時(shí)系統(tǒng)中的任務(wù)都有時(shí)間限制。1.2.1什么是實(shí)時(shí)操作系統(tǒng)什么是實(shí)時(shí)操作系統(tǒng)作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1.2 2實(shí)時(shí)操作系統(tǒng)概述實(shí)時(shí)操作系統(tǒng)概述1.實(shí)時(shí)操作系統(tǒng)首先是多任務(wù)操作系統(tǒng)。2.多級(jí)中斷機(jī)制。3.優(yōu)先級(jí)調(diào)度機(jī)制。 1.2.1實(shí)時(shí)操作系統(tǒng)基本特征實(shí)時(shí)操作系統(tǒng)基本特征作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部
17、代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1.3 3任務(wù)任務(wù).1任務(wù)任務(wù)任務(wù)是程序的動(dòng)態(tài)表現(xiàn),在操作系統(tǒng)中體現(xiàn)為線程,是任務(wù)是程序的動(dòng)態(tài)表現(xiàn),在操作系統(tǒng)中體現(xiàn)為線程,是程序的一次執(zhí)行過(guò)程。程序的一次執(zhí)行過(guò)程。程序是靜止的,存在于ROM、硬盤(pán)等外部設(shè)備。任務(wù)是運(yùn)動(dòng)的,存在于內(nèi)存中,有睡眠、就緒、運(yùn)行、阻塞、掛起等多種狀態(tài)。相同的程序的多次執(zhí)行是可以的,就形成了多個(gè)優(yōu)先級(jí)不同的任務(wù),每一個(gè)都是獨(dú)立的。在實(shí)時(shí)系統(tǒng)中,把應(yīng)用程序的設(shè)計(jì)過(guò)程分割為多個(gè)任務(wù)務(wù),每個(gè)任務(wù)都有自己的優(yōu)先級(jí)優(yōu)先級(jí),在操作系統(tǒng)的調(diào)度下協(xié)調(diào)運(yùn)行。 作者盧有亮作者盧
18、有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.3任務(wù)任務(wù)1.3.1多任務(wù)多任務(wù)void usertask(void *pParam) INT8U i=0; for(;)printf(%dn,i);i+;OSTimeDly(100);作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.31.3任務(wù)任務(wù).1多任務(wù)多任務(wù)實(shí)時(shí)操作系統(tǒng)的是多任務(wù)的操作系統(tǒng),系統(tǒng)中必然有多實(shí)時(shí)操作系統(tǒng)的是多任務(wù)的操作系統(tǒng),系統(tǒng)中必然有多任務(wù)在執(zhí)行
19、。其中有用戶任務(wù),如前面的任務(wù)在執(zhí)行。其中有用戶任務(wù),如前面的usertask,也,也有操作系統(tǒng)的系統(tǒng)任務(wù)如空閑任務(wù)和統(tǒng)計(jì)任務(wù)。多任務(wù)有操作系統(tǒng)的系統(tǒng)任務(wù)如空閑任務(wù)和統(tǒng)計(jì)任務(wù)。多任務(wù)的運(yùn)行相對(duì)于其他的系統(tǒng),其優(yōu)點(diǎn)是可以大大提高的運(yùn)行相對(duì)于其他的系統(tǒng),其優(yōu)點(diǎn)是可以大大提高CPU的利用率,又必然使應(yīng)用程序分成多個(gè)程序模塊,實(shí)現(xiàn)的利用率,又必然使應(yīng)用程序分成多個(gè)程序模塊,實(shí)現(xiàn)模塊化,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。模塊化,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。在嵌入式應(yīng)用的場(chǎng)合的多任務(wù)使用的例子是在一個(gè)在嵌入式應(yīng)用的場(chǎng)合的多任務(wù)使用的例子是在一個(gè)ARM采集處理系統(tǒng)中,同時(shí)采集采集處理系統(tǒng)中,同時(shí)采集16路信號(hào),同時(shí)又
20、要對(duì)多信路信號(hào),同時(shí)又要對(duì)多信號(hào)進(jìn)行處理和傳輸,可以創(chuàng)建號(hào)進(jìn)行處理和傳輸,可以創(chuàng)建16個(gè)任務(wù)負(fù)責(zé)個(gè)任務(wù)負(fù)責(zé)16路信號(hào)的路信號(hào)的采集,創(chuàng)建一個(gè)任務(wù)對(duì)信號(hào)進(jìn)行處理,再創(chuàng)建一個(gè)任務(wù)采集,創(chuàng)建一個(gè)任務(wù)對(duì)信號(hào)進(jìn)行處理,再創(chuàng)建一個(gè)任務(wù)負(fù)責(zé)數(shù)據(jù)的傳輸。負(fù)責(zé)數(shù)據(jù)的傳輸。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1.3 3任務(wù)任務(wù).2多任務(wù)多任務(wù)作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.1.3 3任務(wù)任務(wù)1
21、.任務(wù)狀態(tài)任務(wù)狀態(tài)創(chuàng)創(chuàng)建建任任務(wù)務(wù)睡睡眠眠態(tài)態(tài)就就緒緒態(tài)態(tài)刪刪除除任任務(wù)務(wù)運(yùn)運(yùn)行行態(tài)態(tài)任任務(wù)務(wù)切切換換任任務(wù)務(wù)切切換換刪刪除除任任務(wù)務(wù)阻阻塞塞態(tài)態(tài)事事件件等等待待刪刪除除任任務(wù)務(wù)等等待待的的事事件件發(fā)發(fā)生生掛掛起起態(tài)態(tài)中中斷斷返返回回( (仍仍為為最最高高優(yōu)優(yōu)先先級(jí)級(jí)) )返返回回( (不不是是最最高高優(yōu)優(yōu)先先級(jí)級(jí)) )作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.31.3任務(wù)任務(wù).3任務(wù)狀態(tài)任務(wù)狀態(tài)1.睡眠態(tài)睡眠態(tài)任務(wù)已經(jīng)被裝入內(nèi)存了,可是并沒(méi)任務(wù)已經(jīng)被裝入內(nèi)存了,可是
22、并沒(méi)有準(zhǔn)備好運(yùn)行。例如上面給出的有準(zhǔn)備好運(yùn)行。例如上面給出的usertask代碼,以代碼的形式存代碼,以代碼的形式存在于內(nèi)存中,在調(diào)用在于內(nèi)存中,在調(diào)用OSTaskCreate(任務(wù)創(chuàng)建函數(shù))(任務(wù)創(chuàng)建函數(shù))創(chuàng)建之前,處于睡眠態(tài)。睡眠態(tài)的創(chuàng)建之前,處于睡眠態(tài)。睡眠態(tài)的任務(wù)不會(huì)得到運(yùn)行的,操作系統(tǒng)也任務(wù)不會(huì)得到運(yùn)行的,操作系統(tǒng)也不會(huì)給其設(shè)置為運(yùn)行而準(zhǔn)備的數(shù)據(jù)不會(huì)給其設(shè)置為運(yùn)行而準(zhǔn)備的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)。2.就緒態(tài)就緒態(tài)當(dāng)操作系統(tǒng)調(diào)用當(dāng)操作系統(tǒng)調(diào)用OSTaskCreate創(chuàng)創(chuàng)建一任務(wù)后,任務(wù)就進(jìn)入就緒態(tài)。建一任務(wù)后,任務(wù)就進(jìn)入就緒態(tài)。從圖從圖1.4還可以看出,任務(wù)也可以還可以看出,任務(wù)也可以從其他狀態(tài)
23、轉(zhuǎn)到就緒態(tài)。處于就緒從其他狀態(tài)轉(zhuǎn)到就緒態(tài)。處于就緒態(tài)的任務(wù)操作系統(tǒng)已經(jīng)為其運(yùn)行配態(tài)的任務(wù)操作系統(tǒng)已經(jīng)為其運(yùn)行配置好了任務(wù)控制塊等數(shù)據(jù)結(jié)構(gòu),當(dāng)置好了任務(wù)控制塊等數(shù)據(jù)結(jié)構(gòu),當(dāng)沒(méi)有比其更高優(yōu)先級(jí)的任務(wù),或比沒(méi)有比其更高優(yōu)先級(jí)的任務(wù),或比其優(yōu)先級(jí)更高的任務(wù)處于阻塞狀態(tài)其優(yōu)先級(jí)更高的任務(wù)處于阻塞狀態(tài)的時(shí)候,就能被操作系統(tǒng)調(diào)度而進(jìn)的時(shí)候,就能被操作系統(tǒng)調(diào)度而進(jìn)入運(yùn)行態(tài)。從就緒態(tài)到運(yùn)行態(tài),操入運(yùn)行態(tài)。從就緒態(tài)到運(yùn)行態(tài),操作系統(tǒng)調(diào)用任務(wù)切換函數(shù)完成。作系統(tǒng)調(diào)用任務(wù)切換函數(shù)完成。3.運(yùn)行態(tài)運(yùn)行態(tài)任務(wù)真正占有任務(wù)真正占有CPU,得到運(yùn)行。這時(shí)運(yùn)行的代碼就是任務(wù)的代碼。,得到運(yùn)行。這時(shí)運(yùn)行的代碼就是任務(wù)的代碼。如如
24、usertask。處于運(yùn)行態(tài)的任務(wù)如果運(yùn)行完成,就會(huì)轉(zhuǎn)為睡眠態(tài)。處于運(yùn)行態(tài)的任務(wù)如果運(yùn)行完成,就會(huì)轉(zhuǎn)為睡眠態(tài)。如果有更高優(yōu)先級(jí)的任務(wù)搶占了如果有更高優(yōu)先級(jí)的任務(wù)搶占了CPU,就會(huì)轉(zhuǎn)到就緒態(tài)。如果因?yàn)?,就?huì)轉(zhuǎn)到就緒態(tài)。如果因?yàn)榈却骋皇录?,例如等待一秒鐘的時(shí)間,如等待某一事件,例如等待一秒鐘的時(shí)間,如OSTimeDly(OS_TICKS_PER_SEC),需要暫時(shí)放棄,需要暫時(shí)放棄CPU的使用的使用權(quán)而讓其他任務(wù)得以運(yùn)行,就進(jìn)入了阻塞狀態(tài)。當(dāng)由于中斷的到來(lái)權(quán)而讓其他任務(wù)得以運(yùn)行,就進(jìn)入了阻塞狀態(tài)。當(dāng)由于中斷的到來(lái)而使而使CPU進(jìn)入中斷服務(wù)程序(進(jìn)入中斷服務(wù)程序(ISR),必然使正在運(yùn)行的任務(wù)放棄
25、),必然使正在運(yùn)行的任務(wù)放棄CPU而轉(zhuǎn)入中斷服務(wù)程序,這時(shí)被中斷的程序就被掛起而進(jìn)入掛起而轉(zhuǎn)入中斷服務(wù)程序,這時(shí)被中斷的程序就被掛起而進(jìn)入掛起態(tài)。態(tài)??傊?,任務(wù)要得到運(yùn)行必須進(jìn)入運(yùn)行態(tài),總之,任務(wù)要得到運(yùn)行必須進(jìn)入運(yùn)行態(tài),CPU只有一個(gè)不能讓每個(gè)只有一個(gè)不能讓每個(gè)任務(wù)同時(shí)進(jìn)入運(yùn)行態(tài),進(jìn)入運(yùn)行態(tài)的任務(wù)有且只有一個(gè)。任務(wù)同時(shí)進(jìn)入運(yùn)行態(tài),進(jìn)入運(yùn)行態(tài)的任務(wù)有且只有一個(gè)。4.阻塞態(tài)阻塞態(tài)阻塞對(duì)于操作系統(tǒng)的調(diào)度,任務(wù)的協(xié)調(diào)運(yùn)行是非常重要的。我們能阻塞對(duì)于操作系統(tǒng)的調(diào)度,任務(wù)的協(xié)調(diào)運(yùn)行是非常重要的。我們能看到圖看到圖1.3的運(yùn)行結(jié)果,而不是只有一個(gè)高優(yōu)先級(jí)的任務(wù)得到運(yùn)行,的運(yùn)行結(jié)果,而不是只有一個(gè)高優(yōu)先級(jí)的
26、任務(wù)得到運(yùn)行,就是因?yàn)榫褪且驗(yàn)閡sertask在沒(méi)有事情可做,等待一秒鐘的時(shí)候,不是強(qiáng)在沒(méi)有事情可做,等待一秒鐘的時(shí)候,不是強(qiáng)行運(yùn)行代碼,而是把自己阻塞起來(lái),使操作系統(tǒng)可以調(diào)度其他的任行運(yùn)行代碼,而是把自己阻塞起來(lái),使操作系統(tǒng)可以調(diào)度其他的任務(wù)。務(wù)。當(dāng)任務(wù)在等待某些還沒(méi)有被釋放的資源,等待一定的時(shí)間等時(shí)候,當(dāng)任務(wù)在等待某些還沒(méi)有被釋放的資源,等待一定的時(shí)間等時(shí)候,要阻塞起來(lái),等到條件滿足的時(shí)候再重新回到就緒態(tài),又能被操作要阻塞起來(lái),等到條件滿足的時(shí)候再重新回到就緒態(tài),又能被操作系統(tǒng)調(diào)度以進(jìn)入運(yùn)行態(tài),這是實(shí)時(shí)系統(tǒng)必須要實(shí)現(xiàn)的功能之一。系統(tǒng)調(diào)度以進(jìn)入運(yùn)行態(tài),這是實(shí)時(shí)系統(tǒng)必須要實(shí)現(xiàn)的功能之一。一些不
27、理解操作系統(tǒng)的同學(xué)在編程的時(shí)候,在等待的時(shí)候常常使用一些不理解操作系統(tǒng)的同學(xué)在編程的時(shí)候,在等待的時(shí)候常常使用FOR循環(huán),不停的執(zhí)行代碼而使循環(huán),不停的執(zhí)行代碼而使CPU的利用率暴增,使系統(tǒng)的運(yùn)的利用率暴增,使系統(tǒng)的運(yùn)行環(huán)境十分惡劣,甚至造成死機(jī),是不可取的行環(huán)境十分惡劣,甚至造成死機(jī),是不可取的5.掛起態(tài)掛起態(tài)當(dāng)任務(wù)在運(yùn)行時(shí),因?yàn)橹袛嗟陌l(fā)生,例如定時(shí)器中斷每個(gè)時(shí)鐘滴當(dāng)任務(wù)在運(yùn)行時(shí),因?yàn)橹袛嗟陌l(fā)生,例如定時(shí)器中斷每個(gè)時(shí)鐘滴答(答(clock tick,指每個(gè)時(shí)鐘周期)中斷一次,而被剝奪指每個(gè)時(shí)鐘周期)中斷一次,而被剝奪CPU的使的使用權(quán),而進(jìn)入掛起態(tài)。在中斷返回的時(shí)候,若該任務(wù)還是最高優(yōu)用權(quán),
28、而進(jìn)入掛起態(tài)。在中斷返回的時(shí)候,若該任務(wù)還是最高優(yōu)先級(jí)的,就恢復(fù)運(yùn)行,如果不是這樣,只能回到就緒態(tài)。先級(jí)的,就恢復(fù)運(yùn)行,如果不是這樣,只能回到就緒態(tài)。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.31.3任務(wù)任務(wù).4任務(wù)切換任務(wù)切換 任務(wù)切換就是任務(wù)切換就是context switch,是任務(wù)調(diào)度的重要部分。從字面上是上,是任務(wù)調(diào)度的重要部分。從字面上是上下文切換。任務(wù)切換是暫停一個(gè)任務(wù)的運(yùn)行,運(yùn)行另一個(gè)就緒的任務(wù)。暫下文切換。任務(wù)切換是暫停一個(gè)任務(wù)的運(yùn)行,運(yùn)行另一個(gè)就緒的任務(wù)。暫停一個(gè)
29、任務(wù),以后又能恢復(fù)運(yùn)行,必須考慮將這個(gè)任務(wù)運(yùn)行的信息保存,停一個(gè)任務(wù),以后又能恢復(fù)運(yùn)行,必須考慮將這個(gè)任務(wù)運(yùn)行的信息保存,而恢復(fù)運(yùn)行的時(shí)候需要將這些信息恢復(fù)到運(yùn)行環(huán)境。而恢復(fù)運(yùn)行的時(shí)候需要將這些信息恢復(fù)到運(yùn)行環(huán)境。 任務(wù)切換必須做環(huán)境的保存和恢復(fù)的操作。任務(wù)切換必須做環(huán)境的保存和恢復(fù)的操作。 在操作系統(tǒng)移植的時(shí)候,任務(wù)切換代碼就是必須要實(shí)現(xiàn)的部分之一。在操作系統(tǒng)移植的時(shí)候,任務(wù)切換代碼就是必須要實(shí)現(xiàn)的部分之一。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.31.3任務(wù)任務(wù)1.3.5 1.3.5 可重入
30、和不可重入函數(shù)可重入和不可重入函數(shù)函數(shù)可重入是指一個(gè)函數(shù)可以被多個(gè)任務(wù)調(diào)用,而不需要擔(dān)心在任務(wù)切換函數(shù)可重入是指一個(gè)函數(shù)可以被多個(gè)任務(wù)調(diào)用,而不需要擔(dān)心在任務(wù)切換的過(guò)程中,代碼的執(zhí)行會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。的過(guò)程中,代碼的執(zhí)行會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。如果函數(shù)被多個(gè)任務(wù)調(diào)用,可能產(chǎn)生錯(cuò)誤的結(jié)果,就是不可重入函數(shù)如果函數(shù)被多個(gè)任務(wù)調(diào)用,可能產(chǎn)生錯(cuò)誤的結(jié)果,就是不可重入函數(shù) 。例子:教材表例子:教材表1.4-1.5作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.4 1.4 內(nèi)核內(nèi)核.1內(nèi)核內(nèi)核內(nèi)核是操作系統(tǒng)
31、最核心的部分,其主要功能就內(nèi)核是操作系統(tǒng)最核心的部分,其主要功能就是進(jìn)行任務(wù)調(diào)度。所謂調(diào)度,就是決定多任務(wù)是進(jìn)行任務(wù)調(diào)度。所謂調(diào)度,就是決定多任務(wù)的運(yùn)行狀態(tài),哪個(gè)任務(wù)應(yīng)該處于圖的運(yùn)行狀態(tài),哪個(gè)任務(wù)應(yīng)該處于圖1.4中的哪種中的哪種狀態(tài)。內(nèi)核中最最核心的基本服務(wù)就是調(diào)度的狀態(tài)。內(nèi)核中最最核心的基本服務(wù)就是調(diào)度的核心核心任務(wù)切換任務(wù)切換C/OS使用的是一種基于優(yōu)先級(jí)的可剝奪型內(nèi)使用的是一種基于優(yōu)先級(jí)的可剝奪型內(nèi)核。核。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.4 1.4 內(nèi)核內(nèi)核.1基于優(yōu)
32、先級(jí)的調(diào)度算法基于優(yōu)先級(jí)的調(diào)度算法在在C/OS中,可以同時(shí)有中,可以同時(shí)有64個(gè)就緒任務(wù),每個(gè)個(gè)就緒任務(wù),每個(gè)任務(wù)都有各自的優(yōu)先級(jí)。優(yōu)先級(jí)用無(wú)符號(hào)整數(shù)任務(wù)都有各自的優(yōu)先級(jí)。優(yōu)先級(jí)用無(wú)符號(hào)整數(shù)來(lái)表示,從來(lái)表示,從0到到63,數(shù)字越大則優(yōu)先級(jí)越低。,數(shù)字越大則優(yōu)先級(jí)越低。C/OS總是調(diào)度就緒了的,優(yōu)先級(jí)最高的任務(wù)總是調(diào)度就緒了的,優(yōu)先級(jí)最高的任務(wù)獲得獲得CPU的控制權(quán),不管這個(gè)任務(wù)是什么,執(zhí)的控制權(quán),不管這個(gè)任務(wù)是什么,執(zhí)行什么樣的功能,也不管該任務(wù)是否已經(jīng)等了行什么樣的功能,也不管該任務(wù)是否已經(jīng)等了很久。很久。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)
33、時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.4 1.4 內(nèi)核內(nèi)核.1不可剝奪和可剝奪內(nèi)核不可剝奪和可剝奪內(nèi)核作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.1同步同步任務(wù)是獨(dú)立的,但是任務(wù)之間又有著各種各樣的關(guān)系,任務(wù)是獨(dú)立的,但是任務(wù)之間又有著各種各樣的關(guān)系,以成為一個(gè)整體,來(lái)完成某一項(xiàng)工作。有時(shí)候一個(gè)任務(wù)以成為一個(gè)整體,來(lái)完成某一項(xiàng)工作。有時(shí)候一個(gè)任務(wù)完成的前提是需要另一個(gè)任務(wù)給出一個(gè)結(jié)果,任務(wù)之間完成的前提是需要另一個(gè)任務(wù)給出
34、一個(gè)結(jié)果,任務(wù)之間的這種制約性的合作運(yùn)行機(jī)制叫做任務(wù)間的同步。的這種制約性的合作運(yùn)行機(jī)制叫做任務(wù)間的同步。例如,例如,A任務(wù)實(shí)現(xiàn)計(jì)算功能,任務(wù)實(shí)現(xiàn)計(jì)算功能,B任務(wù)輸出任務(wù)輸出A任務(wù)計(jì)算的任務(wù)計(jì)算的結(jié)果,然后循環(huán)運(yùn)行。結(jié)果,然后循環(huán)運(yùn)行。A任務(wù)和任務(wù)和B任務(wù)就必須同步,否任務(wù)就必須同步,否則則B任務(wù)輸出的可能不是任務(wù)輸出的可能不是A任務(wù)剛完成的結(jié)果,或則任務(wù)剛完成的結(jié)果,或則B任務(wù)訪問(wèn)結(jié)果時(shí),任務(wù)訪問(wèn)結(jié)果時(shí),A任務(wù)正在修改,因而輸出錯(cuò)誤的結(jié)任務(wù)正在修改,因而輸出錯(cuò)誤的結(jié)果。果。A和和B就是必須進(jìn)行同步的任務(wù)。就是必須進(jìn)行同步的任務(wù)。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下
35、載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.2互斥互斥 前面的例子中,前面的例子中,A和和B兩個(gè)任務(wù)都要訪問(wèn)計(jì)算結(jié)果這個(gè)兩個(gè)任務(wù)都要訪問(wèn)計(jì)算結(jié)果這個(gè)共享資源,但是在共享資源,但是在A寫(xiě)這個(gè)資源的同時(shí),寫(xiě)這個(gè)資源的同時(shí),B必須等待,必須等待,而不能在而不能在A寫(xiě)到一半的時(shí)候結(jié)束寫(xiě)到一半的時(shí)候結(jié)束A而讓而讓B來(lái)讀,這樣會(huì)來(lái)讀,這樣會(huì)產(chǎn)生災(zāi)難性的后果。產(chǎn)生災(zāi)難性的后果。這樣的共享資源稱為臨界資源(這樣的共享資源稱為臨界資源(Critical Resource)。)。這種訪問(wèn)共享資源的排他性就是互斥。這種訪問(wèn)共享資源的排
36、他性就是互斥。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.3臨界區(qū)臨界區(qū) 每個(gè)任務(wù)中訪問(wèn)共享資源的那段程序稱為臨界區(qū)每個(gè)任務(wù)中訪問(wèn)共享資源的那段程序稱為臨界區(qū)(Critical Section),因?yàn)楣蚕碣Y源的訪問(wèn)是要互斥),因?yàn)楣蚕碣Y源的訪問(wèn)是要互斥的。在臨界區(qū)不允許任務(wù)切換,的。在臨界區(qū)不允許任務(wù)切換, 這是最根本的原則。這是最根本的原則。因?yàn)槿绻谠L問(wèn)共享資源的時(shí)候進(jìn)行任務(wù)切換,就可能因?yàn)槿绻谠L問(wèn)共享資源的時(shí)候進(jìn)行任務(wù)切換,就可能發(fā)生前面提到的
37、災(zāi)難性后果。因此,在進(jìn)入臨界區(qū)訪問(wèn)發(fā)生前面提到的災(zāi)難性后果。因此,在進(jìn)入臨界區(qū)訪問(wèn)共享資源之前,采用關(guān)中斷,給調(diào)度器上鎖或使用信號(hào)共享資源之前,采用關(guān)中斷,給調(diào)度器上鎖或使用信號(hào)量的方法,達(dá)到互斥的目的。量的方法,達(dá)到互斥的目的。 訪問(wèn)臨界區(qū)的例子訪問(wèn)臨界區(qū)的例子作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.4任務(wù)事件任務(wù)事件 事件(事件(Event)就是在操作系統(tǒng)運(yùn)行過(guò)程中發(fā)生的事情。)就是在操作系統(tǒng)運(yùn)行過(guò)程中發(fā)生的事情。例如任務(wù)被掛起、喚醒、創(chuàng)建等。
38、例如任務(wù)被掛起、喚醒、創(chuàng)建等。C/OS操作系統(tǒng)在處理任務(wù)的同步和通信等環(huán)節(jié),大操作系統(tǒng)在處理任務(wù)的同步和通信等環(huán)節(jié),大量的使用了事件這一概念,創(chuàng)建了事件控制塊這樣的數(shù)量的使用了事件這一概念,創(chuàng)建了事件控制塊這樣的數(shù)據(jù)結(jié)構(gòu)以進(jìn)行事件的管理。據(jù)結(jié)構(gòu)以進(jìn)行事件的管理。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.5信號(hào)量信號(hào)量在一個(gè)時(shí)刻,有些共享資源只可以被一個(gè)任務(wù)所占有,在一個(gè)時(shí)刻,有些共享資源只可以被一個(gè)任務(wù)所占有,而有些可以被至多而有些可以被至多N個(gè)任
39、務(wù)所共享。前一種共享資源就個(gè)任務(wù)所共享。前一種共享資源就好比有一把鑰匙,鑰匙發(fā)出去了,得到鑰匙的任務(wù)可以好比有一把鑰匙,鑰匙發(fā)出去了,得到鑰匙的任務(wù)可以訪問(wèn)共享資源,其他請(qǐng)求該資源的任務(wù)必須等得到鑰匙訪問(wèn)共享資源,其他請(qǐng)求該資源的任務(wù)必須等得到鑰匙的任務(wù)把鑰匙歸還。后者則可以有的任務(wù)把鑰匙歸還。后者則可以有N把鑰匙,如果把鑰匙,如果N把把鑰匙都發(fā)完了,第鑰匙都發(fā)完了,第N+1個(gè)請(qǐng)求訪問(wèn)共享資源的任務(wù)就必個(gè)請(qǐng)求訪問(wèn)共享資源的任務(wù)就必須等待。這些鑰匙就可以用信號(hào)量(須等待。這些鑰匙就可以用信號(hào)量(semaphore)來(lái))來(lái)表示。表示。信號(hào)量標(biāo)志了共享資源的有效可被訪問(wèn)數(shù)量,于是要獲信號(hào)量標(biāo)志了共享
40、資源的有效可被訪問(wèn)數(shù)量,于是要獲得共享資源的訪問(wèn)權(quán),就首先要得到信號(hào)量這把鑰匙。得共享資源的訪問(wèn)權(quán),就首先要得到信號(hào)量這把鑰匙。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.5信號(hào)量信號(hào)量信號(hào)量三種操作:信號(hào)量三種操作:1.建立(建立(create)建立并初始化信號(hào)量,在一個(gè)事件塊里標(biāo)志該信號(hào),記錄該信號(hào)建立并初始化信號(hào)量,在一個(gè)事件塊里標(biāo)志該信號(hào),記錄該信號(hào)的量值,執(zhí)行的是給資源配鑰匙的操作。該操作的條件是系統(tǒng)中的量值,執(zhí)行的是給資源配鑰匙的操作。該
41、操作的條件是系統(tǒng)中還有空余的事件塊。操作系統(tǒng)能處理的事件是有限的,任何的數(shù)還有空余的事件塊。操作系統(tǒng)能處理的事件是有限的,任何的數(shù)據(jù)結(jié)構(gòu)都不能無(wú)限,尤其是在實(shí)時(shí)系統(tǒng)中。據(jù)結(jié)構(gòu)都不能無(wú)限,尤其是在實(shí)時(shí)系統(tǒng)中。2.請(qǐng)求(請(qǐng)求(pend)請(qǐng)求信號(hào),如果還有鑰匙(信號(hào)量大于請(qǐng)求信號(hào),如果還有鑰匙(信號(hào)量大于0),就去領(lǐng)一把(信號(hào)量),就去領(lǐng)一把(信號(hào)量-),執(zhí)行下去;如果沒(méi)有,就要把自己阻塞掉,因?yàn)椴荒軋?zhí)行下),執(zhí)行下去;如果沒(méi)有,就要把自己阻塞掉,因?yàn)椴荒軋?zhí)行下去就不需要再占用寶貴的去就不需要再占用寶貴的CPU。3.釋放(釋放(post)訪問(wèn)資源的操作完成后就把鑰匙交回(信號(hào)量訪問(wèn)資源的操作完成后就
42、把鑰匙交回(信號(hào)量+)。這時(shí),如果)。這時(shí),如果有等待該鑰匙的任務(wù)就緒,并比當(dāng)前任務(wù)有更高的優(yōu)先級(jí),就執(zhí)有等待該鑰匙的任務(wù)就緒,并比當(dāng)前任務(wù)有更高的優(yōu)先級(jí),就執(zhí)行任務(wù)調(diào)度。否則,原任務(wù)在釋放信號(hào)量之后繼續(xù)執(zhí)行。行任務(wù)調(diào)度。否則,原任務(wù)在釋放信號(hào)量之后繼續(xù)執(zhí)行。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.6互斥信號(hào)量互斥信號(hào)量 互斥信號(hào)量是一種特殊的信號(hào)量,這不僅在于該信號(hào)互斥信號(hào)量是一種特殊的信號(hào)量,這不僅在于該信號(hào)量只有用于互斥資源的訪問(wèn),還在于使
43、用互斥信號(hào)量管量只有用于互斥資源的訪問(wèn),還在于使用互斥信號(hào)量管理需要解決的優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。理需要解決的優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。 如系統(tǒng)中有三個(gè)任務(wù)分別是高優(yōu)先級(jí)、中優(yōu)先級(jí)和低如系統(tǒng)中有三個(gè)任務(wù)分別是高優(yōu)先級(jí)、中優(yōu)先級(jí)和低優(yōu)先級(jí)的,當(dāng)?shù)蛢?yōu)先級(jí)的任務(wù)在運(yùn)行的時(shí)候訪問(wèn)互斥資優(yōu)先級(jí)的,當(dāng)?shù)蛢?yōu)先級(jí)的任務(wù)在運(yùn)行的時(shí)候訪問(wèn)互斥資源,而中優(yōu)先級(jí)的任務(wù)運(yùn)行的時(shí)候?qū)⑹沟蛢?yōu)先級(jí)的任務(wù)源,而中優(yōu)先級(jí)的任務(wù)運(yùn)行的時(shí)候?qū)⑹沟蛢?yōu)先級(jí)的任務(wù)得不到運(yùn)行而死抱著資源不放。這是高優(yōu)先級(jí)的任務(wù)開(kāi)得不到運(yùn)行而死抱著資源不放。這是高優(yōu)先級(jí)的任務(wù)開(kāi)始運(yùn)行的時(shí)候,必須等待中優(yōu)先級(jí)的任務(wù)運(yùn)行完成,然始運(yùn)行的時(shí)候,必須等待中優(yōu)先級(jí)的任務(wù)運(yùn)行完成,然后等
44、低優(yōu)先級(jí)的任務(wù)訪問(wèn)資源完成才行。如果在低優(yōu)先后等低優(yōu)先級(jí)的任務(wù)訪問(wèn)資源完成才行。如果在低優(yōu)先級(jí)的任務(wù)訪問(wèn)資源過(guò)程中又有中優(yōu)先級(jí)任務(wù)運(yùn)行,那么級(jí)的任務(wù)訪問(wèn)資源過(guò)程中又有中優(yōu)先級(jí)任務(wù)運(yùn)行,那么高優(yōu)先級(jí)的任務(wù)只有繼續(xù)等待。這種情況就是優(yōu)先級(jí)反高優(yōu)先級(jí)的任務(wù)只有繼續(xù)等待。這種情況就是優(yōu)先級(jí)反轉(zhuǎn)轉(zhuǎn) 。作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信.7事件標(biāo)志組事件標(biāo)志組 在信號(hào)量和互斥信號(hào)量的管理中,任務(wù)請(qǐng)求資源,在信號(hào)量和互斥信號(hào)量的管理中,任務(wù)請(qǐng)求資源,如果資源
45、未被占用就可繼續(xù)運(yùn)行,否則只能阻塞,等待如果資源未被占用就可繼續(xù)運(yùn)行,否則只能阻塞,等待資源釋放的事件發(fā)生。這種事件是單一的事件。如果任資源釋放的事件發(fā)生。這種事件是單一的事件。如果任務(wù)要等待多個(gè)事件的發(fā)生,或多個(gè)事件中的某一個(gè)事件務(wù)要等待多個(gè)事件的發(fā)生,或多個(gè)事件中的某一個(gè)事件的發(fā)生就可以繼續(xù)運(yùn)行,那么就應(yīng)該采用事件標(biāo)志組管的發(fā)生就可以繼續(xù)運(yùn)行,那么就應(yīng)該采用事件標(biāo)志組管理。理。 事件標(biāo)志組管理的條件組合可以是多個(gè)事件都發(fā)生,事件標(biāo)志組管理的條件組合可以是多個(gè)事件都發(fā)生,也可以是多個(gè)事件中有任何一個(gè)事件發(fā)生。尤其特別的也可以是多個(gè)事件中有任何一個(gè)事件發(fā)生。尤其特別的是,還可以是多個(gè)事件都沒(méi)有發(fā)生或多個(gè)事件中有任何是,還可以是多個(gè)事件都沒(méi)有發(fā)生或多個(gè)事件中有任何一個(gè)事件沒(méi)有發(fā)生。一個(gè)事件沒(méi)有發(fā)生。 作者盧有亮作者盧有亮 圖書(shū)圖書(shū)PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐1.5 1.5 同步和通信同步和通信1.5.8 1.5.8 消息郵箱和消息隊(duì)列消息郵箱和消息隊(duì)列郵箱郵箱(MailBox)很明顯是用于通信的,郵箱中的內(nèi)容一很明顯是用于通信的,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)下冊(cè)數(shù)學(xué)教案-長(zhǎng)方形的面積-北師大版
- 公司與公司借款合同(2025年版)
- 二年級(jí)上冊(cè)數(shù)學(xué)教案-7.6 動(dòng)物樂(lè)園|北師大版
- (高清版)DB45∕T 203-2022 綠色食品 茶葉生產(chǎn)技術(shù)規(guī)程
- 人教版數(shù)學(xué)三年級(jí)上冊(cè)單元練習(xí)卷(易錯(cuò)題)-第六單元-多位數(shù)乘一位數(shù)(含答案)
- 模擬試卷五(原卷版+解析版)-三年級(jí)語(yǔ)文上學(xué)期期末全真模擬卷(部編版五四制)
- 第三課 表格的修飾(教學(xué)設(shè)計(jì))2023-2024學(xué)年四年級(jí)下冊(cè)信息技術(shù)龍教版
- 2025年甘肅財(cái)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)學(xué)生專用
- 2025年度實(shí)習(xí)生實(shí)習(xí)基地共建實(shí)習(xí)勞動(dòng)協(xié)議書(shū)
- 2025年度新能源產(chǎn)業(yè)研發(fā)人員招聘與技術(shù)支持協(xié)議
- HCIE-Transmission H12-931認(rèn)證培訓(xùn)考試題庫(kù)匯總(含答案)
- 造血細(xì)胞與基本檢驗(yàn)方法-細(xì)胞化學(xué)染色(血液學(xué)檢驗(yàn)課件)
- 領(lǐng)子的分類詳解課件
- 產(chǎn)品質(zhì)量保證書(shū)
- 工廠員工消防安全培訓(xùn)內(nèi)容
- 調(diào)節(jié)與集合的相關(guān)性 相對(duì)調(diào)節(jié)和相對(duì)集合的關(guān)系
- 《金融工程》課程教案
- 水輪機(jī)結(jié)構(gòu)總體介紹
- 十八項(xiàng)護(hù)理核心制度培訓(xùn)課件
- GB/T 41326-2022六氟丁二烯
- GB/T 19470-2004土工合成材料塑料土工網(wǎng)
評(píng)論
0/150
提交評(píng)論