![嵌入式實時操作系統(tǒng)μCOS原理與實踐_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/1/23755960-8e45-4ea7-956a-c64b62d097b2/23755960-8e45-4ea7-956a-c64b62d097b21.gif)
![嵌入式實時操作系統(tǒng)μCOS原理與實踐_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/1/23755960-8e45-4ea7-956a-c64b62d097b2/23755960-8e45-4ea7-956a-c64b62d097b22.gif)
![嵌入式實時操作系統(tǒng)μCOS原理與實踐_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/1/23755960-8e45-4ea7-956a-c64b62d097b2/23755960-8e45-4ea7-956a-c64b62d097b23.gif)
![嵌入式實時操作系統(tǒng)μCOS原理與實踐_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/1/23755960-8e45-4ea7-956a-c64b62d097b2/23755960-8e45-4ea7-956a-c64b62d097b24.gif)
![嵌入式實時操作系統(tǒng)μCOS原理與實踐_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/1/23755960-8e45-4ea7-956a-c64b62d097b2/23755960-8e45-4ea7-956a-c64b62d097b25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐1嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)C/OSC/OS原理與實踐原理與實踐教材教材 :嵌入式實時操作系統(tǒng):嵌入式實時操作系統(tǒng)C/OS分析與實踐分析與實踐電子工業(yè)出版社電子工業(yè)出版社作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐2引言:關于圖書 1.專業(yè)說明 考慮到各專業(yè)讀者學習方向不同,有些已經(jīng)學習過操作系統(tǒng)原理,對一般的操作系統(tǒng)原理有一定的認識,有些電子專業(yè)的讀者并沒有深入學習過操作系
2、統(tǒng)原理,另外有些讀者對C語言掌握的程度并不太高,因此本書采用由淺入深,層層推進的方 在第一章給出實時操作系統(tǒng)的基礎,為以后各章的學習打下基礎,滿足未學習過操作系統(tǒng)的讀者,而學習過操作系統(tǒng)的讀者也要掌握本章的內(nèi)容,因為嵌入式實時操作系統(tǒng)有其個性。代碼的講解上在第2章任務管理的部分盡量詳盡,從第3章中斷和時間管理開始,因為讀者已經(jīng)具備了或提高了C語言的能力,對讀者已經(jīng)掌握的內(nèi)容就不贅述,但對新的難點仍給以詳盡解析 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐3 2.關于實踐 實踐是檢驗真理的標準,所學的知識必須結(jié)合實際。
3、除給出在基于Nios II的FPGA系統(tǒng)上移植,前面各章例子都是通過將C/OS移植到PC中,在虛擬的平臺下運行C/OS來得到印證。所有代碼都包含在VC的一個工程中,打開工程文件就可以看到結(jié)構清晰的源代碼,因此非常適合讀者學習。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐4關于圖書3學習什么 通過本書的學習,應能較為全面、深入的掌握嵌入式實時操作系統(tǒng)的基本原理,能夠讀懂讀通C/OS的包括內(nèi)核、任務管理、時間和中斷管理、信號量管理、互斥信號量管理、事件標志組管理、消息郵箱管理、消息隊列管理、內(nèi)存管理的源代碼,能將C/O
4、S移植到不同平臺中去,并能在移植的過程中知其然又知其所以然,不會出現(xiàn)在沒有掌握C/OS而強做移植時出現(xiàn)的困難和錯誤。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐5關于圖書4章節(jié)介紹 第一章是操作系統(tǒng)和嵌入式實時操作系統(tǒng)的基本原理,第一章是操作系統(tǒng)和嵌入式實時操作系統(tǒng)的基本原理,對于對原理掌握已經(jīng)比較好的有一定基礎的讀者可以選對于對原理掌握已經(jīng)比較好的有一定基礎的讀者可以選擇跳過或略讀。擇跳過或略讀。 第二章是任務管理,是基本內(nèi)容,需要對數(shù)據(jù)結(jié)構和源第二章是任務管理,是基本內(nèi)容,需要對數(shù)據(jù)結(jié)構和源代碼仔細體會。代碼仔
5、細體會。 第三章是時間和中斷管理,時間管理包括一些函數(shù),中第三章是時間和中斷管理,時間管理包括一些函數(shù),中斷管理主要是中斷的流程。斷管理主要是中斷的流程。 第四章、第五章是事件和消息部分,包含了各種事件和第四章、第五章是事件和消息部分,包含了各種事件和消息機制。消息機制。 第六章是內(nèi)存管理。第六章是內(nèi)存管理。 第七章是移植的流程分析和在虛擬平臺以及具有軟核的第七章是移植的流程分析和在虛擬平臺以及具有軟核的FPGA下的移植。下的移植。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐65.先期知識 學習本課程的先前知識是:C
6、語言,匯編,簡單的數(shù)據(jù)結(jié)構??梢酝綄W習微機原理或單片機、DSP等。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐7關于圖書:6.PPT及軟件下載與視頻為方便讀者學習,在電子工業(yè)出版社網(wǎng)站提供可在VC下編譯的完整源代碼,包括例子程序的代碼。源代碼及PPT可在電子工業(yè)出版社網(wǎng)站下載,以用于教學或?qū)W習目的。 也可通過郵箱聯(lián)系筆者。 讀者還可以到網(wǎng)站下載C/OS操作系統(tǒng)的源代碼及查找相關資料 讀者還可以通過作者名或UCOS在百度視頻找到本書作者提供的的教學視頻(時間有限做的不好請原諒)作者盧有亮作者盧有亮 圖書圖書PPT和
7、全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐8感謝支持感謝支持 書上有路勤為徑書上有路勤為徑 學海無涯苦作舟學海無涯苦作舟 購買本人圖書的朋友,請不吝發(fā)表評購買本人圖書的朋友,請不吝發(fā)表評價和建議!在此表示感謝!價和建議!在此表示感謝!作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐9關于C/OS-II一一. .要高效的開發(fā)嵌入式系統(tǒng),就離不開嵌入式操作系要高效的開發(fā)嵌入式系統(tǒng),就離不開嵌入式操作系統(tǒng),一方面,高實時性的操作系統(tǒng)軟件是嵌入式軟件統(tǒng),一方面,高實時性的操作系統(tǒng)軟件是嵌
8、入式軟件的基本要求。另一方面,嵌入式軟件開發(fā)要想走向標的基本要求。另一方面,嵌入式軟件開發(fā)要想走向標準化,就必須使用多任務的操作系統(tǒng)。準化,就必須使用多任務的操作系統(tǒng)。 二二. C/OS. C/OS正是這樣的操作系統(tǒng),它是高實時性,多正是這樣的操作系統(tǒng),它是高實時性,多任務的操作系統(tǒng),且是源代碼對非商業(yè)用途開放的操任務的操作系統(tǒng),且是源代碼對非商業(yè)用途開放的操作系統(tǒng)作系統(tǒng) 三三. C/OS. C/OS適用于嵌入式開發(fā),并已在各領域得到廣適用于嵌入式開發(fā),并已在各領域得到廣泛的應用并獲得認可。在百度上搜索泛的應用并獲得認可。在百度上搜索ucos,ucos,得到的信息得到的信息條數(shù)約條數(shù)約1,25
9、0,0001,250,000條。條。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐10章節(jié)介紹 第一章是操作系統(tǒng)和嵌入式實時操作系統(tǒng)的基本原理。 第二章是任務管理,是基本內(nèi)容,需要對數(shù)據(jù)結(jié)構和源代碼仔細體會。 第三章是時間和中斷管理,時間管理包括一些函數(shù),中斷管理主要是中斷的流程。 第四章、第五章是事件和消息部分,包含了各種事件和消息機制。 第六章是內(nèi)存管理。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐11第一章第一章 實時操作系統(tǒng)基礎實時
10、操作系統(tǒng)基礎 1.1 操作系統(tǒng)概述 1.2 實時操作系統(tǒng)概述 1.3任務 1.4基于優(yōu)先級的不可剝奪內(nèi)核 1.5同步與通信 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐121.1 1.1 操作系統(tǒng)概述操作系統(tǒng)概述1. 1.1 1. 1.1 什么是操作系統(tǒng)什么是操作系統(tǒng)操作系統(tǒng)操作系統(tǒng)OS(Operating System)是裸機上的第)是裸機上的第一層軟件。操作系統(tǒng)是計一層軟件。操作系統(tǒng)是計算機系統(tǒng)中最重要的系統(tǒng)算機系統(tǒng)中最重要的系統(tǒng)軟件,是硬件的第一層封軟件,是硬件的第一層封裝與抽象,在計算機系統(tǒng)裝與抽象,在計算機
11、系統(tǒng)中占據(jù)著重要的地位,所中占據(jù)著重要的地位,所有其他的系統(tǒng)軟件與應用有其他的系統(tǒng)軟件與應用軟件都依賴于操作系統(tǒng)的軟件都依賴于操作系統(tǒng)的支持與服務。除提供編程支持與服務。除提供編程接口,操作系統(tǒng)還承擔著接口,操作系統(tǒng)還承擔著任務管理、事件管理和消任務管理、事件管理和消息通信、息通信、CPU管理、內(nèi)存管理、內(nèi)存管理、管理、IO管理等核心功能。管理等核心功能。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐131.1 1.1 操作系統(tǒng)概述操作系統(tǒng)概述1. 1. 2 1. 1. 2 操作系統(tǒng)基本功能操作系統(tǒng)基本功能1.任務管理
12、任務管理任務是程序的一次執(zhí)行。任務可以任務是程序的一次執(zhí)行。任務可以分為系統(tǒng)任務和用戶任務。系統(tǒng)任分為系統(tǒng)任務和用戶任務。系統(tǒng)任務是操作系統(tǒng)本身的任務,如操作務是操作系統(tǒng)本身的任務,如操作系統(tǒng)的主程序,時鐘中斷服務程序,系統(tǒng)的主程序,時鐘中斷服務程序,如后面要講到的空閑任務和統(tǒng)計任如后面要講到的空閑任務和統(tǒng)計任務等。用戶任務是用戶應用程序的務等。用戶任務是用戶應用程序的運行,如用戶設計的計算器軟件的運行,如用戶設計的計算器軟件的一次執(zhí)行或一次執(zhí)行或WORD軟件的運行,軟件的運行,如本書中給出的一些用戶任務。這如本書中給出的一些用戶任務。這些任務都需要任務管理部分來管些任務都需要任務管理部分來管
13、理。理。2.CPU管理管理CPU管理的含義在于多任務管理的含義在于多任務OS對對CPU的分配,也就是分配對的分配,也就是分配對CPU的所有權,簡單說,哪個軟件正在的所有權,簡單說,哪個軟件正在運行,占有運行,占有CPU??梢园阉鼩w入??梢园阉鼩w入任務管理。任務管理。3.內(nèi)存管理內(nèi)存管理內(nèi)存是任務的生存空間。內(nèi)存管理內(nèi)存是任務的生存空間。內(nèi)存管理用于給任務分配內(nèi)存空間,相應的,用于給任務分配內(nèi)存空間,相應的,在任務結(jié)束后釋放內(nèi)存空間。在任務結(jié)束后釋放內(nèi)存空間。4.文件管理文件管理文件管理系統(tǒng)是實現(xiàn)對文件的統(tǒng)一文件管理系統(tǒng)是實現(xiàn)對文件的統(tǒng)一管理,是對文件存儲器的存儲空間管理,是對文件存儲器的存儲空
14、間進行組織,分配和回收,負責文件進行組織,分配和回收,負責文件的存儲,檢索,共享和保護。從用的存儲,檢索,共享和保護。從用戶角度來看,文件系統(tǒng)主要是實現(xiàn)戶角度來看,文件系統(tǒng)主要是實現(xiàn)按名取存按名取存,文件系統(tǒng)的用戶只要,文件系統(tǒng)的用戶只要知道所需文件的文件名,就可存取知道所需文件的文件名,就可存取文件中的信息,而無需知道這些文文件中的信息,而無需知道這些文件究竟存放在什么地方。件究竟存放在什么地方。 5.IO設備管理設備管理管理系統(tǒng)中的各種硬件設備,如打管理系統(tǒng)中的各種硬件設備,如打印機,顯示器,硬盤等。很明顯,印機,顯示器,硬盤等。很明顯,用戶應用程序應該調(diào)用用戶應用程序應該調(diào)用IO設備管理
15、設備管理模塊提供的模塊提供的API來對設備進行操作,來對設備進行操作,而不是直接讀寫硬件。而不是直接讀寫硬件。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐142 2實時操作系統(tǒng)概述實時操作系統(tǒng)概述實時操作系統(tǒng)RTOS(Real Time Operating System)是指當外界事件或數(shù)據(jù)產(chǎn)生時,能夠接收并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應,并控制所有實時任務協(xié)調(diào)一致運行的操作系統(tǒng)。實時系統(tǒng)與非實時系統(tǒng)的本質(zhì)區(qū)別就在于實時系統(tǒng)中的任務都有時間限制。1.2.
16、1什么是實時操作系統(tǒng)什么是實時操作系統(tǒng)作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐152 2實時操作系統(tǒng)概述實時操作系統(tǒng)概述1.實時操作系統(tǒng)首先是多任務操作系統(tǒng)。2.多級中斷機制。3.優(yōu)先級調(diào)度機制。 1.2.1實時操作系統(tǒng)基本特征實時操作系統(tǒng)基本特征作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐163 3任務任務.1任務任務任務是程序的動態(tài)表現(xiàn),在操作系統(tǒng)中體現(xiàn)為線程,是任務是程序的動態(tài)表現(xiàn),在操作系統(tǒng)中體現(xiàn)為線程,是程序的
17、一次執(zhí)行過程。程序的一次執(zhí)行過程。程序是靜止的,存在于ROM、硬盤等外部設備。任務是運動的,存在于內(nèi)存中,有睡眠、就緒、運行、阻塞、掛起等多種狀態(tài)。相同的程序的多次執(zhí)行是可以的,就形成了多個優(yōu)先級不同的任務,每一個都是獨立的。在實時系統(tǒng)中,把應用程序的設計過程分割為多個任務務,每個任務都有自己的優(yōu)先級優(yōu)先級,在操作系統(tǒng)的調(diào)度下協(xié)調(diào)運行。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐171.3任務任務1.3.1多任務多任務void usertask(void *pParam) INT8U i=0; for(;)prin
18、tf(%dn,i);i+;OSTimeDly(100);作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐181.31.3任務任務.1多任務多任務實時操作系統(tǒng)的是多任務的操作系統(tǒng),系統(tǒng)中必然有多實時操作系統(tǒng)的是多任務的操作系統(tǒng),系統(tǒng)中必然有多任務在執(zhí)行。其中有用戶任務,如前面的任務在執(zhí)行。其中有用戶任務,如前面的usertask,也,也有操作系統(tǒng)的系統(tǒng)任務如空閑任務和統(tǒng)計任務。多任務有操作系統(tǒng)的系統(tǒng)任務如空閑任務和統(tǒng)計任務。多任務的運行相對于其他的系統(tǒng),其優(yōu)點是可以大大提高的運行相對于其他的系統(tǒng),其優(yōu)點是可
19、以大大提高CPU的利用率,又必然使應用程序分成多個程序模塊,實現(xiàn)的利用率,又必然使應用程序分成多個程序模塊,實現(xiàn)模塊化,應用程序更易于設計和維護。模塊化,應用程序更易于設計和維護。在嵌入式應用的場合的多任務使用的例子是在一個在嵌入式應用的場合的多任務使用的例子是在一個ARM采集處理系統(tǒng)中,同時采集采集處理系統(tǒng)中,同時采集16路信號,同時又要對多信路信號,同時又要對多信號進行處理和傳輸,可以創(chuàng)建號進行處理和傳輸,可以創(chuàng)建16個任務負責個任務負責16路信號的路信號的采集,創(chuàng)建一個任務對信號進行處理,再創(chuàng)建一個任務采集,創(chuàng)建一個任務對信號進行處理,再創(chuàng)建一個任務負責數(shù)據(jù)的傳輸。負責數(shù)據(jù)的傳輸。作者盧
20、有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐193 3任務任務.2多任務多任務作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐203 3任務任務.3任務狀態(tài)任務狀態(tài)創(chuàng)創(chuàng)建建任任務務睡睡眠眠態(tài)態(tài)就就緒緒態(tài)態(tài)刪刪除除任任務務運運行行態(tài)態(tài)任任務務切切換換任任務務切切換換刪刪除除任任務務阻阻塞塞態(tài)態(tài)事事件件等等待待刪刪除除任任務務等等待待的的事事件件發(fā)發(fā)生生掛掛起起態(tài)態(tài)中中斷斷返返回回( (仍仍為為最最高高優(yōu)優(yōu)先先級級) )返
21、返回回( (不不是是最最高高優(yōu)優(yōu)先先級級) )作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐211.31.3任務任務.3任務狀態(tài)任務狀態(tài)1.睡眠態(tài)睡眠態(tài)任務已經(jīng)被裝入內(nèi)存了,可是并沒任務已經(jīng)被裝入內(nèi)存了,可是并沒有準備好運行。例如上面給出的有準備好運行。例如上面給出的usertask代碼,以代碼的形式存代碼,以代碼的形式存在于內(nèi)存中,在調(diào)用在于內(nèi)存中,在調(diào)用OSTaskCreate(任務創(chuàng)建函數(shù))(任務創(chuàng)建函數(shù))創(chuàng)建之前,處于睡眠態(tài)。睡眠態(tài)的創(chuàng)建之前,處于睡眠態(tài)。睡眠態(tài)的任務不會得到運行的,操作系統(tǒng)也任
22、務不會得到運行的,操作系統(tǒng)也不會給其設置為運行而準備的數(shù)據(jù)不會給其設置為運行而準備的數(shù)據(jù)結(jié)構。結(jié)構。2.就緒態(tài)就緒態(tài)當操作系統(tǒng)調(diào)用當操作系統(tǒng)調(diào)用OSTaskCreate創(chuàng)創(chuàng)建一任務后,任務就進入就緒態(tài)。建一任務后,任務就進入就緒態(tài)。從圖從圖1.4還可以看出,任務也可以還可以看出,任務也可以從其他狀態(tài)轉(zhuǎn)到就緒態(tài)。處于就緒從其他狀態(tài)轉(zhuǎn)到就緒態(tài)。處于就緒態(tài)的任務操作系統(tǒng)已經(jīng)為其運行配態(tài)的任務操作系統(tǒng)已經(jīng)為其運行配置好了任務控制塊等數(shù)據(jù)結(jié)構,當置好了任務控制塊等數(shù)據(jù)結(jié)構,當沒有比其更高優(yōu)先級的任務,或比沒有比其更高優(yōu)先級的任務,或比其優(yōu)先級更高的任務處于阻塞狀態(tài)其優(yōu)先級更高的任務處于阻塞狀態(tài)的時候,就
23、能被操作系統(tǒng)調(diào)度而進的時候,就能被操作系統(tǒng)調(diào)度而進入運行態(tài)。從就緒態(tài)到運行態(tài),操入運行態(tài)。從就緒態(tài)到運行態(tài),操作系統(tǒng)調(diào)用任務切換函數(shù)完成。作系統(tǒng)調(diào)用任務切換函數(shù)完成。3.運行態(tài)運行態(tài)任務真正占有任務真正占有CPU,得到運行。這時運行的代碼就是任務的代碼。,得到運行。這時運行的代碼就是任務的代碼。如如usertask。處于運行態(tài)的任務如果運行完成,就會轉(zhuǎn)為睡眠態(tài)。處于運行態(tài)的任務如果運行完成,就會轉(zhuǎn)為睡眠態(tài)。如果有更高優(yōu)先級的任務搶占了如果有更高優(yōu)先級的任務搶占了CPU,就會轉(zhuǎn)到就緒態(tài)。如果因為,就會轉(zhuǎn)到就緒態(tài)。如果因為等待某一事件,例如等待一秒鐘的時間,如等待某一事件,例如等待一秒鐘的時間,如
24、OSTimeDly(OS_TICKS_PER_SEC),需要暫時放棄,需要暫時放棄CPU的使用的使用權而讓其他任務得以運行,就進入了阻塞狀態(tài)。當由于中斷的到來權而讓其他任務得以運行,就進入了阻塞狀態(tài)。當由于中斷的到來而使而使CPU進入中斷服務程序(進入中斷服務程序(ISR),必然使正在運行的任務放棄),必然使正在運行的任務放棄CPU而轉(zhuǎn)入中斷服務程序,這時被中斷的程序就被掛起而進入掛起而轉(zhuǎn)入中斷服務程序,這時被中斷的程序就被掛起而進入掛起態(tài)。態(tài)??傊?,任務要得到運行必須進入運行態(tài),總之,任務要得到運行必須進入運行態(tài),CPU只有一個不能讓每個只有一個不能讓每個任務同時進入運行態(tài),進入運行態(tài)的任務
25、有且只有一個。任務同時進入運行態(tài),進入運行態(tài)的任務有且只有一個。4.阻塞態(tài)阻塞態(tài)阻塞對于操作系統(tǒng)的調(diào)度,任務的協(xié)調(diào)運行是非常重要的。我們能阻塞對于操作系統(tǒng)的調(diào)度,任務的協(xié)調(diào)運行是非常重要的。我們能看到圖看到圖1.3的運行結(jié)果,而不是只有一個高優(yōu)先級的任務得到運行,的運行結(jié)果,而不是只有一個高優(yōu)先級的任務得到運行,就是因為就是因為usertask在沒有事情可做,等待一秒鐘的時候,不是強在沒有事情可做,等待一秒鐘的時候,不是強行運行代碼,而是把自己阻塞起來,使操作系統(tǒng)可以調(diào)度其他的任行運行代碼,而是把自己阻塞起來,使操作系統(tǒng)可以調(diào)度其他的任務。務。當任務在等待某些還沒有被釋放的資源,等待一定的時間
26、等時候,當任務在等待某些還沒有被釋放的資源,等待一定的時間等時候,要阻塞起來,等到條件滿足的時候再重新回到就緒態(tài),又能被操作要阻塞起來,等到條件滿足的時候再重新回到就緒態(tài),又能被操作系統(tǒng)調(diào)度以進入運行態(tài),這是實時系統(tǒng)必須要實現(xiàn)的功能之一。系統(tǒng)調(diào)度以進入運行態(tài),這是實時系統(tǒng)必須要實現(xiàn)的功能之一。一些不理解操作系統(tǒng)的同學在編程的時候,在等待的時候常常使用一些不理解操作系統(tǒng)的同學在編程的時候,在等待的時候常常使用FOR循環(huán),不停的執(zhí)行代碼而使循環(huán),不停的執(zhí)行代碼而使CPU的利用率暴增,使系統(tǒng)的運的利用率暴增,使系統(tǒng)的運行環(huán)境十分惡劣,甚至造成死機,是不可取的行環(huán)境十分惡劣,甚至造成死機,是不可取的5
27、.掛起態(tài)掛起態(tài)當任務在運行時,因為中斷的發(fā)生,例如定時器中斷每個時鐘滴當任務在運行時,因為中斷的發(fā)生,例如定時器中斷每個時鐘滴答(答(clock tick,指每個時鐘周期)中斷一次,而被剝奪指每個時鐘周期)中斷一次,而被剝奪CPU的使的使用權,而進入掛起態(tài)。在中斷返回的時候,若該任務還是最高優(yōu)用權,而進入掛起態(tài)。在中斷返回的時候,若該任務還是最高優(yōu)先級的,就恢復運行,如果不是這樣,只能回到就緒態(tài)。先級的,就恢復運行,如果不是這樣,只能回到就緒態(tài)。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐221.31.3任務任務1.
28、任務切換任務切換 任務切換就是任務切換就是context switch,是任務調(diào)度的重要部分。從字面上是上,是任務調(diào)度的重要部分。從字面上是上下文切換。任務切換是暫停一個任務的運行,運行另一個就緒的任務。暫下文切換。任務切換是暫停一個任務的運行,運行另一個就緒的任務。暫停一個任務,以后又能恢復運行,必須考慮將這個任務運行的信息保存,停一個任務,以后又能恢復運行,必須考慮將這個任務運行的信息保存,而恢復運行的時候需要將這些信息恢復到運行環(huán)境。而恢復運行的時候需要將這些信息恢復到運行環(huán)境。 任務切換必須做環(huán)境的保存和恢復的操作。任務切換必須做環(huán)境的保存和恢復的操作。 在操作系統(tǒng)移植
29、的時候,任務切換代碼就是必須要實現(xiàn)的部分之一。在操作系統(tǒng)移植的時候,任務切換代碼就是必須要實現(xiàn)的部分之一。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐231.31.3任務任務1.3.5 1.3.5 可重入和不可重入函數(shù)可重入和不可重入函數(shù)函數(shù)可重入是指一個函數(shù)可以被多個任務調(diào)用,而不需要擔心在任務切換函數(shù)可重入是指一個函數(shù)可以被多個任務調(diào)用,而不需要擔心在任務切換的過程中,代碼的執(zhí)行會產(chǎn)生錯誤的結(jié)果。的過程中,代碼的執(zhí)行會產(chǎn)生錯誤的結(jié)果。如果函數(shù)被多個任務調(diào)用,可能產(chǎn)生錯誤的結(jié)果,就是不可重入函數(shù)如果函數(shù)被多個任務
30、調(diào)用,可能產(chǎn)生錯誤的結(jié)果,就是不可重入函數(shù) 。例子:教材表例子:教材表1.4-1.5作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐241.4 1.4 內(nèi)核內(nèi)核.1內(nèi)核內(nèi)核內(nèi)核是操作系統(tǒng)最核心的部分,其主要功能就內(nèi)核是操作系統(tǒng)最核心的部分,其主要功能就是進行任務調(diào)度。所謂調(diào)度,就是決定多任務是進行任務調(diào)度。所謂調(diào)度,就是決定多任務的運行狀態(tài),哪個任務應該處于圖的運行狀態(tài),哪個任務應該處于圖1.4中的哪種中的哪種狀態(tài)。內(nèi)核中最最核心的基本服務就是調(diào)度的狀態(tài)。內(nèi)核中最最核心的基本服務就是調(diào)度的核心核心任務切換
31、任務切換C/OS使用的是一種基于優(yōu)先級的可剝奪型內(nèi)使用的是一種基于優(yōu)先級的可剝奪型內(nèi)核。核。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐251.4 1.4 內(nèi)核內(nèi)核.1基于優(yōu)先級的調(diào)度算法基于優(yōu)先級的調(diào)度算法在在C/OS中,可以同時有中,可以同時有64個就緒任務,每個個就緒任務,每個任務都有各自的優(yōu)先級。優(yōu)先級用無符號整數(shù)任務都有各自的優(yōu)先級。優(yōu)先級用無符號整數(shù)來表示,從來表示,從0到到63,數(shù)字越大則優(yōu)先級越低。,數(shù)字越大則優(yōu)先級越低。C/OS總是調(diào)度就緒了的,優(yōu)先級最高的任務總是調(diào)度就緒了的,優(yōu)先
32、級最高的任務獲得獲得CPU的控制權,不管這個任務是什么,執(zhí)的控制權,不管這個任務是什么,執(zhí)行什么樣的功能,也不管該任務是否已經(jīng)等了行什么樣的功能,也不管該任務是否已經(jīng)等了很久。很久。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐261.4 1.4 內(nèi)核內(nèi)核.1不可剝奪和可剝奪內(nèi)核不可剝奪和可剝奪內(nèi)核作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐271.5 1.5 同步和通信同步和通信.1同步同步任務是獨立的,但是
33、任務之間又有著各種各樣的關系,任務是獨立的,但是任務之間又有著各種各樣的關系,以成為一個整體,來完成某一項工作。有時候一個任務以成為一個整體,來完成某一項工作。有時候一個任務完成的前提是需要另一個任務給出一個結(jié)果,任務之間完成的前提是需要另一個任務給出一個結(jié)果,任務之間的這種制約性的合作運行機制叫做任務間的同步。的這種制約性的合作運行機制叫做任務間的同步。例如,例如,A任務實現(xiàn)計算功能,任務實現(xiàn)計算功能,B任務輸出任務輸出A任務計算的任務計算的結(jié)果,然后循環(huán)運行。結(jié)果,然后循環(huán)運行。A任務和任務和B任務就必須同步,否任務就必須同步,否則則B任務輸出的可能不是任務輸出的可能不是A任務剛完成的結(jié)果
34、,或則任務剛完成的結(jié)果,或則B任務訪問結(jié)果時,任務訪問結(jié)果時,A任務正在修改,因而輸出錯誤的結(jié)任務正在修改,因而輸出錯誤的結(jié)果。果。A和和B就是必須進行同步的任務。就是必須進行同步的任務。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐281.5 1.5 同步和通信同步和通信.2互斥互斥 前面的例子中,前面的例子中,A和和B兩個任務都要訪問計算結(jié)果這個兩個任務都要訪問計算結(jié)果這個共享資源,但是在共享資源,但是在A寫這個資源的同時,寫這個資源的同時,B必須等待,必須等待,而不能在而不能在A寫到一半的時候結(jié)
35、束寫到一半的時候結(jié)束A而讓而讓B來讀,這樣會來讀,這樣會產(chǎn)生災難性的后果。產(chǎn)生災難性的后果。這樣的共享資源稱為臨界資源(這樣的共享資源稱為臨界資源(Critical Resource)。)。這種訪問共享資源的排他性就是互斥。這種訪問共享資源的排他性就是互斥。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐291.5 1.5 同步和通信同步和通信.3臨界區(qū)臨界區(qū) 每個任務中訪問共享資源的那段程序稱為臨界區(qū)每個任務中訪問共享資源的那段程序稱為臨界區(qū)(Critical Section),因為共享資源的訪問是要互
36、斥),因為共享資源的訪問是要互斥的。在臨界區(qū)不允許任務切換,的。在臨界區(qū)不允許任務切換, 這是最根本的原則。這是最根本的原則。因為如果在訪問共享資源的時候進行任務切換,就可能因為如果在訪問共享資源的時候進行任務切換,就可能發(fā)生前面提到的災難性后果。因此,在進入臨界區(qū)訪問發(fā)生前面提到的災難性后果。因此,在進入臨界區(qū)訪問共享資源之前,采用關中斷,給調(diào)度器上鎖或使用信號共享資源之前,采用關中斷,給調(diào)度器上鎖或使用信號量的方法,達到互斥的目的。量的方法,達到互斥的目的。 訪問臨界區(qū)的例子訪問臨界區(qū)的例子作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式
37、實時操作系統(tǒng)原理與實踐301.5 1.5 同步和通信同步和通信.4任務事件任務事件 事件(事件(Event)就是在操作系統(tǒng)運行過程中發(fā)生的事情。)就是在操作系統(tǒng)運行過程中發(fā)生的事情。例如任務被掛起、喚醒、創(chuàng)建等。例如任務被掛起、喚醒、創(chuàng)建等。C/OS操作系統(tǒng)在處理任務的同步和通信等環(huán)節(jié),大操作系統(tǒng)在處理任務的同步和通信等環(huán)節(jié),大量的使用了事件這一概念,創(chuàng)建了事件控制塊這樣的數(shù)量的使用了事件這一概念,創(chuàng)建了事件控制塊這樣的數(shù)據(jù)結(jié)構以進行事件的管理。據(jù)結(jié)構以進行事件的管理。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作
38、系統(tǒng)原理與實踐311.5 1.5 同步和通信同步和通信.5信號量信號量在一個時刻,有些共享資源只可以被一個任務所占有,在一個時刻,有些共享資源只可以被一個任務所占有,而有些可以被至多而有些可以被至多N個任務所共享。前一種共享資源就個任務所共享。前一種共享資源就好比有一把鑰匙,鑰匙發(fā)出去了,得到鑰匙的任務可以好比有一把鑰匙,鑰匙發(fā)出去了,得到鑰匙的任務可以訪問共享資源,其他請求該資源的任務必須等得到鑰匙訪問共享資源,其他請求該資源的任務必須等得到鑰匙的任務把鑰匙歸還。后者則可以有的任務把鑰匙歸還。后者則可以有N把鑰匙,如果把鑰匙,如果N把把鑰匙都發(fā)完了,第鑰匙都發(fā)完了,第N+1個
39、請求訪問共享資源的任務就必個請求訪問共享資源的任務就必須等待。這些鑰匙就可以用信號量(須等待。這些鑰匙就可以用信號量(semaphore)來)來表示。表示。信號量標志了共享資源的有效可被訪問數(shù)量,于是要獲信號量標志了共享資源的有效可被訪問數(shù)量,于是要獲得共享資源的訪問權,就首先要得到信號量這把鑰匙。得共享資源的訪問權,就首先要得到信號量這把鑰匙。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐321.5 1.5 同步和通信同步和通信.5信號量信號量信號量三種操作:信號量三種操作:1.建立(建立(crea
40、te)建立并初始化信號量,在一個事件塊里標志該信號,記錄該信號建立并初始化信號量,在一個事件塊里標志該信號,記錄該信號的量值,執(zhí)行的是給資源配鑰匙的操作。該操作的條件是系統(tǒng)中的量值,執(zhí)行的是給資源配鑰匙的操作。該操作的條件是系統(tǒng)中還有空余的事件塊。操作系統(tǒng)能處理的事件是有限的,任何的數(shù)還有空余的事件塊。操作系統(tǒng)能處理的事件是有限的,任何的數(shù)據(jù)結(jié)構都不能無限,尤其是在實時系統(tǒng)中。據(jù)結(jié)構都不能無限,尤其是在實時系統(tǒng)中。2.請求(請求(pend)請求信號,如果還有鑰匙(信號量大于請求信號,如果還有鑰匙(信號量大于0),就去領一把(信號量),就去領一把(信號量-),執(zhí)行下去;如果沒有,就要把自己阻塞掉
41、,因為不能執(zhí)行下),執(zhí)行下去;如果沒有,就要把自己阻塞掉,因為不能執(zhí)行下去就不需要再占用寶貴的去就不需要再占用寶貴的CPU。3.釋放(釋放(post)訪問資源的操作完成后就把鑰匙交回(信號量訪問資源的操作完成后就把鑰匙交回(信號量+)。這時,如果)。這時,如果有等待該鑰匙的任務就緒,并比當前任務有更高的優(yōu)先級,就執(zhí)有等待該鑰匙的任務就緒,并比當前任務有更高的優(yōu)先級,就執(zhí)行任務調(diào)度。否則,原任務在釋放信號量之后繼續(xù)執(zhí)行。行任務調(diào)度。否則,原任務在釋放信號量之后繼續(xù)執(zhí)行。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐33
42、1.5 1.5 同步和通信同步和通信.6互斥信號量互斥信號量 互斥信號量是一種特殊的信號量,這不僅在于該信號互斥信號量是一種特殊的信號量,這不僅在于該信號量只有用于互斥資源的訪問,還在于使用互斥信號量管量只有用于互斥資源的訪問,還在于使用互斥信號量管理需要解決的優(yōu)先級反轉(zhuǎn)問題。理需要解決的優(yōu)先級反轉(zhuǎn)問題。 如系統(tǒng)中有三個任務分別是高優(yōu)先級、中優(yōu)先級和低如系統(tǒng)中有三個任務分別是高優(yōu)先級、中優(yōu)先級和低優(yōu)先級的,當?shù)蛢?yōu)先級的任務在運行的時候訪問互斥資優(yōu)先級的,當?shù)蛢?yōu)先級的任務在運行的時候訪問互斥資源,而中優(yōu)先級的任務運行的時候?qū)⑹沟蛢?yōu)先級的任務源,而中優(yōu)先級的任務運行的時候?qū)⑹沟蛢?yōu)先
43、級的任務得不到運行而死抱著資源不放。這是高優(yōu)先級的任務開得不到運行而死抱著資源不放。這是高優(yōu)先級的任務開始運行的時候,必須等待中優(yōu)先級的任務運行完成,然始運行的時候,必須等待中優(yōu)先級的任務運行完成,然后等低優(yōu)先級的任務訪問資源完成才行。如果在低優(yōu)先后等低優(yōu)先級的任務訪問資源完成才行。如果在低優(yōu)先級的任務訪問資源過程中又有中優(yōu)先級任務運行,那么級的任務訪問資源過程中又有中優(yōu)先級任務運行,那么高優(yōu)先級的任務只有繼續(xù)等待。這種情況就是優(yōu)先級反高優(yōu)先級的任務只有繼續(xù)等待。這種情況就是優(yōu)先級反轉(zhuǎn)轉(zhuǎn) 。作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時
44、操作系統(tǒng)原理與實踐341.5 1.5 同步和通信同步和通信.7事件標志組事件標志組 在信號量和互斥信號量的管理中,任務請求資源,在信號量和互斥信號量的管理中,任務請求資源,如果資源未被占用就可繼續(xù)運行,否則只能阻塞,等待如果資源未被占用就可繼續(xù)運行,否則只能阻塞,等待資源釋放的事件發(fā)生。這種事件是單一的事件。如果任資源釋放的事件發(fā)生。這種事件是單一的事件。如果任務要等待多個事件的發(fā)生,或多個事件中的某一個事件務要等待多個事件的發(fā)生,或多個事件中的某一個事件的發(fā)生就可以繼續(xù)運行,那么就應該采用事件標志組管的發(fā)生就可以繼續(xù)運行,那么就應該采用事件標志組管理。理。 事件標志組管理的條
45、件組合可以是多個事件都發(fā)生,事件標志組管理的條件組合可以是多個事件都發(fā)生,也可以是多個事件中有任何一個事件發(fā)生。尤其特別的也可以是多個事件中有任何一個事件發(fā)生。尤其特別的是,還可以是多個事件都沒有發(fā)生或多個事件中有任何是,還可以是多個事件都沒有發(fā)生或多個事件中有任何一個事件沒有發(fā)生。一個事件沒有發(fā)生。 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載 嵌入式實時操作系統(tǒng)原理與實踐嵌入式實時操作系統(tǒng)原理與實踐351.5 1.5 同步和通信同步和通信1.5.8 1.5.8 消息郵箱和消息隊列消息郵箱和消息隊列郵箱郵箱(MailBox)很明顯是用于通信的,郵箱中的內(nèi)容一很明顯是用于通信的,郵箱中的內(nèi)容一般是信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全方位保安服務合同模板2025年
- 2025年體育中心使用租賃合同書
- 2025年合伙發(fā)展戰(zhàn)略投資合同
- 2025年協(xié)議離婚權益策劃保障
- 2025年重癥監(jiān)護臨床信息系統(tǒng)項目立項申請報告模稿
- 2025年個人融資合同策劃(含利息標準)
- 2025年產(chǎn)品質(zhì)保跟蹤服務協(xié)議范本
- 2025年小型機床項目提案報告模范
- 2025年專利權使用許可合同示范文本
- 2025年機動車購買合同簡化版
- 氧化還原反應配平專項訓練
- 人教版英語高考試卷與參考答案(2024年)
- 河砂、碎石生產(chǎn)質(zhì)量保證措施方案
- 全國教育科學規(guī)劃課題申報書:02.《鑄牢中華民族共同體意識的學校教育研究》
- 三位數(shù)除以兩位數(shù)過關練習口算題大全附答案
- 什么叫績效考勤管理制度
- 紅樓夢服飾文化
- 外墻噴漆施工合同協(xié)議書
- 軟件系統(tǒng)平臺項目實施方案
- 陜西延長石油集團礦業(yè)公司招聘筆試題庫2024
- 湖北省2024年村干部定向考試真題
評論
0/150
提交評論