嵌入式系統(tǒng)Chap.ppt_第1頁
嵌入式系統(tǒng)Chap.ppt_第2頁
嵌入式系統(tǒng)Chap.ppt_第3頁
嵌入式系統(tǒng)Chap.ppt_第4頁
嵌入式系統(tǒng)Chap.ppt_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1,嵌入式系統(tǒng)嵌入式實時操作系統(tǒng)C/OS-分析,2006年5月,2,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,3,為什么需要操作系統(tǒng),4,硬件抽象層的引入,嵌入式實時系統(tǒng)自底向上包含三個部分硬件環(huán)境嵌入式實時操作系統(tǒng)RTOS嵌入式實時應用程序由于嵌入式系統(tǒng)應用的硬件環(huán)境差異較大新增加的中間層位于操作系統(tǒng)和硬件之間,包含了系統(tǒng)中與硬件相關的大部分功能,隱蔽了底層硬件的多樣性,5,嵌入式系統(tǒng)的體系結構,6,HAL簡介,硬件抽象層(HAL)是體系結構相關的底層程序處理系統(tǒng)啟動、硬件初始化以及中斷與異常硬件抽象層對內核其它部分提供統(tǒng)一的調用接口HAL可以提供BSP規(guī)范,提供跨平臺可移植性,7,硬件抽象層接口定義和代碼設計特點,硬件抽象層具有與硬件密切相關性硬件抽象層具有與操作系統(tǒng)無關性接口定義的功能應包含硬件或系統(tǒng)所需硬件支持的所有功能接口定義簡單明了,太多接口函數(shù)會增加軟件模擬的復雜性具有可測性的接口設計有利于系統(tǒng)的軟硬件測試和集成,8,HAL設計目標,支持多種的國際主流嵌入式芯片支持數(shù)字電視機頂盒、智能手機、數(shù)字化音視頻、數(shù)字儀表等數(shù)字化產(chǎn)品中常見外設的驅動基于甚高端通訊設備的硬件抽象層,能夠支持多CPU體系結構(SMP),以及基于網(wǎng)絡元素NE的甚高端通訊設備基于智能手機的硬件抽象層,能夠支持以IntelPCA體系結構為內核的智能手機、以IntelEIA體系結構為內核的智能手機,以及以Motorola的88000系列為內核的PDA基于IC卡的匯編級硬件抽象層,能夠支持數(shù)字電視條件接收CA的8/16/32位CPUIC設計和機器碼級匯編抽象層,9,通用操作系統(tǒng)和嵌入式(實時)操作系統(tǒng),通用操作系統(tǒng):Windows/NT/XP、Linux、UNIX等,用于PC機、服務器,嵌入式(實時)操作系統(tǒng):用于嵌入式設備的操作系統(tǒng),具有通用操作系統(tǒng)的基本特點,又具有系統(tǒng)實時性、硬件的相關依賴性、軟件固態(tài)化以及應用的專用性等特點;嵌入式(實時)操作系統(tǒng)通常包括與硬件相關的底層驅動軟件、系統(tǒng)內核、設備驅動接口、通信協(xié)議、圖形界面、標準化瀏覽器Browser等;嵌入式(實時)操作系統(tǒng)的重要指標:實時性(中斷響應時間、任務切換時間等)、尺寸(可裁剪性)、可擴展性(內核、中間件),10,嵌入式操作系統(tǒng)的發(fā)展,11,常見的嵌入式操作系統(tǒng),實時嵌入式操作系統(tǒng)的種類繁多,大體上可分為兩種,商用型和免費型。商用型的實操作系統(tǒng)功能穩(wěn)定、可靠,有完善的技術支持和售后服務,但往往價格昂貴,如Vxworks、QNX、WinCE、PalmOS等。免費型的實時操作系統(tǒng)在價格方面具有優(yōu)勢,目前主要有Linux,C/OS是一種源碼開放的商業(yè)RTOS,12,學習嵌入式操作系統(tǒng),學習一種實時操作系統(tǒng)RTOS,如C/OS-,掌握實時系統(tǒng)的概念和設計方法嵌入式系統(tǒng)以應用為中心,要選擇“適用”的操作系統(tǒng)嵌入式Linux自己嘗試“寫”RTOS,13,RTOS在嵌入式系統(tǒng)中的位置,嵌入式硬件平臺,BSP,KERNEL,FS,TCP/IP,設備驅動,設備I/O,調試工具,其它組件,應用,RTOS,C/C+,14,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,15,C/OS簡介,1、C/OSMicroControllerOS,微控制器操作系統(tǒng)2、C/OS簡介美國人JeanLabrosse1992年完成應用面覆蓋了諸多領域,如照相機、醫(yī)療器械、音響設備、發(fā)動機控制、高速公路電話系統(tǒng)、自動提款機等1998年C/OS-II,目前的版本C/OS-IIV2.61,2.722000年,得到美國航空管理局(FAA)的認證,可以用于飛行器中網(wǎng)站www.ucos-II.com(),16,公開源代碼可移植性(Portable)絕大部分C/OS-II的源碼是用移植性很強的ANSIC寫的。和微處理器硬件相關的那部分是用匯編語言寫的。匯編語言寫的部分已經(jīng)壓到最低限度,使得C/OS-II便于移植到其他微處理器上。C/OS-II可以在絕大多數(shù)8位、16位、32位以至64位微處理器、微控制器、數(shù)字信號處理器(DSP)上運行??晒袒≧OMable)C/OS-II是為嵌入式應用而設計的,這就意味著,只要用戶有固化手段(C編譯、連接、下載和固化),C/OS-II可以嵌入到用戶的產(chǎn)品中成為產(chǎn)品的一部分??刹眉簦⊿calable)可以只使用C/OS-II中應用程序需要的那些系統(tǒng)服務。也就是說某產(chǎn)品可以只使用很少幾個C/OS-II調用,而另一個產(chǎn)品則使用了幾乎所有C/OS-II的功能,這樣可以減少產(chǎn)品中的C/OS-II所需的存儲器空間(RAM和ROM)。這種可剪裁性是靠條件編譯實現(xiàn)的。,C/OS的性能特點(一),17,占先式(Preemptive)多任務C/OS-II可以管理64個任務,然而,目前這一版本保留8個給系統(tǒng)。應用程序最多可以有56個任務可確定性全部C/OS-II的函數(shù)調用與服務的執(zhí)行時間具有可確定性。任務棧每個任務有自己單獨的棧,C/OS-II允許每個任務有不同的棧空間,以便壓低應用程序對RAM的需求。系統(tǒng)服務C/OS-II提供很多系統(tǒng)服務,例如郵箱、消息隊列、信號量、塊大小固定的內存的申請與釋放、時間相關函數(shù)等。中斷管理中斷可以使正在執(zhí)行的任務暫時掛起,如果優(yōu)先級更高的任務被該中斷喚醒,則高優(yōu)先級的任務在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達255層。穩(wěn)定性與可靠性,C/OS的性能特點(二),18,C/OS-II圖籍,描述了C/OS-II內部的工作原理隨書的CD中包含了源代碼工業(yè)界最清晰的源代碼除英文版外,有中文和韓文版,Chinese,Korean,English,ISBN1-57820-103-9美國CMPBOOK,ISBN7-81077-290-2北京航空航天大學出版社,ISBN89-951540-5-5,19,C/OS-II的各種商業(yè)應用,全世界有數(shù)百種產(chǎn)品在應用:Avionics(航空電子設備)MedicalCellphonesRoutersandswitchesHigh-endaudioequipmentWashingmachinesanddryersUPS(UninterruptiblePowerSupplies)IndustrialcontrollersGPSNavigationSystemsMicrowaveRadiosInstrumentationPoint-of-saleterminals更多,20,C/OS-II提供的系統(tǒng)服務,信號量帶互斥機制的信號量減少優(yōu)先級倒置的問題事件標志消息信箱消息隊列內存管理時鐘管理任務管理,21,C/GUIandC/FS,C/GUI嵌入式的用戶界面用ANSIC書寫支持任何8,16,32-bitsCPU彩色,灰度等級或黑白顯示代碼尺寸小C/FS嵌入式的文件系統(tǒng)用ANSIC書寫支持任何8,16,32-bitsCPU支持SMC,MMC,SD,CF,IDE,Flash,RAM其他介質,22,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,23,C/OS-II的文件結構,24,內核結構任務管理時間管理任務之間通信與同步C/OS的移植,C/OS-II分析,25,當處理臨界段代碼時,須關中斷,處理完畢后,再開中斷關中斷時間是實時內核最重要的指標之一。它影響用戶系統(tǒng)對實時事件的相應特性。在實際應用中,關中斷的時間很大程度上取決于微處理器的結構和編譯器生成的代碼質量微處理器通常具有關中斷/開中斷操作。C編譯器須具有某種機制,能夠在c中直接實現(xiàn)關中斷/開中斷操作C源代碼中插入?yún)R編語言的語句,易實現(xiàn)關中斷/開中斷操作關中斷/開中斷操作作為語言的擴展部分,直接從C語言中可以關中斷/開中斷,C/OS-II開關中斷的方法,26,C/OS-II開關中斷的方法(續(xù)1),C/OS-II定義了兩個宏調用來開關中斷:OS_ENTER_CRITICAL()(禁止中斷的宏)OS_EXIT_CRITICAL()(啟用中斷的宏)通常成對出現(xiàn)上述宏定義取決于使用的微處理器。在文件OS_CPU.H有相應的宏定義在C/OS-II中,每種微處理器都有自己的OS_CPU.H文件,27,C/OS-II開關中斷的方法(續(xù)2),.OS_ENTER_CRITICAL();/*C/OS-II臨界段代碼*/OS_EXIT_CRITICAL();.如果在所有掛起類(PEND)調用之前,如:調用OSTimeDel()(掛起時間)功能函數(shù)之前關中斷,會出現(xiàn)什么現(xiàn)象?通常,調用C/OS-II功能函數(shù)時,中斷總應當是開放的。,28,C/OS-II開關中斷的方法(續(xù)3),OS_ENTER_CRITICAL()及OS_EXIT_CRITICAL()可以用3種不同的方法實現(xiàn)具體方法取決于用戶打算移植到的處理器的性能及所用的C編譯器用定義(#define)常數(shù)OS_CRITICAL_METHOD可以選擇具體使用哪種方法該常數(shù)在與CPU類型有關的移植文件OS_CPU.H中定義,29,OS_CRITICAL_METHOD=1用最簡單的方式來實現(xiàn)2個宏調用用處理器指令關中斷,完成OS_ENTER_CRITICAL()用開中斷指令完成OS_EXIT_CRITICAL()問題:如果調用C/OS-II功能函數(shù)時,中斷是關掉的,則從C/OS-II函數(shù)返回時,中斷就打開了若調用C/OS-II功能函數(shù)之前已將中斷關掉,那么用戶往往希望從C/OS-II函數(shù)返回時,中斷仍然是關著的。這時,這種方法就不妥當。對特定的處理器,這種辦法是唯一的選擇,C/OS-II中采用了3種開關中斷的方法,30,C/OS-II中采用了3種開關中斷的方法(續(xù)1),OS_CRITICAL_METHOD=2在堆棧中保存中斷的開/關狀態(tài),然后再關中斷實現(xiàn)OS_ENTER_CRITICAL()時,先在堆棧中保存中斷的開/關狀態(tài),然后再關中斷實現(xiàn)OS_EXIT_CRITICAL()時,從堆棧中彈出原來中斷的開/關狀態(tài)利用這種機制,不論用戶在調用C/OS-II功能函數(shù)之前中斷是開或關,函數(shù)的進入和返回狀態(tài)都得到了保護。即:調用前中斷的開/關狀態(tài),在調用之后保持不變,31,C/OS-II中采用了3種開關中斷的方法(續(xù)2),OS_CRITICAL_METHOD=3把當前處理器的狀態(tài)字(PSW)保存在C函數(shù)的局部變量中(如OS_CPU_SR)關中斷時保存,開中斷時恢復,32,C/OS-II中采用了3種開關中斷的方法(續(xù)3),VoidSome_uCOS_II_Service(arguments)OS_CPU_SRcpu_sr;cpu_sr=get_processor_psw();disable_interrupts();/*臨界段代碼*/set_processor_psw(cpu_sr);,33,任務(task),典型的任務:一個無限循環(huán)voidmytask(void*pdata)for(;)dosomething;waiting;dosomething;,34,TaskStructure,35,任務完成后的自我刪除,36,C/OSII中的任務,C/OSII2.5版本支持64個任務,每個任務一個特定的優(yōu)先級。數(shù)字越小,優(yōu)先級越高系統(tǒng)總是運行進入就緒態(tài)優(yōu)先級最高的任務任務優(yōu)先級號就是任務編號(ID).優(yōu)先級號也被一些內核功能函數(shù)調用。如OsTaskChangePrio()及OsTaskDel().系統(tǒng)占用了8個任務,保留優(yōu)先級為0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO-0即:建議不使用上述最高4個和最低4個優(yōu)先級,用戶任務仍可達56個,37,任務狀態(tài),在任一給定的時刻,任務的狀態(tài)一定是以下五種狀態(tài)之一:睡眠態(tài)(taskdormant)就緒態(tài)(taskready)運行態(tài)(taskrunning)等待狀態(tài)(taskwaiting)中斷服務態(tài)(ISRrunning),38,睡眠態(tài)(taskdormant),指任務駐留在程序空間(ROM或RAM),還沒有交給系統(tǒng)來管理的狀態(tài)任務交給系統(tǒng)通過調用以下函數(shù)之一來實現(xiàn):OSTaskCreate()OSTaskCreateExt()告知系統(tǒng):任務的起始地址任務建立時,用戶給任務賦予的優(yōu)先級任務要使用的??臻g大小等,39,就緒態(tài)(taskready),任務一旦創(chuàng)建就進入就緒態(tài),準備運行任務的創(chuàng)建可以是在多任務開始之前,也可以動態(tài)地由一個運行著的任務創(chuàng)建若剛創(chuàng)建任務的優(yōu)先級高于創(chuàng)建它的任務的優(yōu)先級,它將立即獲得cpu的使用權任務可通過OSTaskDel()返回睡眠態(tài);或調用該函數(shù)讓另一個任務進入睡眠態(tài),40,運行態(tài)(taskrunning),就緒的任務只有當所有優(yōu)先級高于它的任務都轉為等待狀態(tài),或被刪除后,才能進入運行態(tài)任何時刻只有一個任務處于運行態(tài)調用OSStart()可以啟動多任務。該函數(shù)只能在啟動時調用一次OSStart()運行用戶初始化代碼中已經(jīng)建立的、進入就緒態(tài)的優(yōu)先級最高的任務,41,等待狀態(tài)(taskwaiting),正在運行的任務可以通過下面的調用進入等待狀態(tài)。延遲時間到,立即強制執(zhí)行任務切換,讓下一個優(yōu)先級最高、并進入就緒態(tài)的任務執(zhí)行。OSTimeDly()OSTimeDlyHMSM()等待時間過去后,系統(tǒng)服務(內部)函數(shù)OSTimeTick()使延遲了的任務進入就緒態(tài)用戶無需在應用程序代碼中調用這個函數(shù),42,等待狀態(tài)(續(xù)),正在運行的任務可能需要通過調用函數(shù)等待某一事件發(fā)生。如果該事件并未發(fā)生,任務就進入等待狀態(tài)OSFlagPend();OSMutexPend()OSSemPend();OSMboxPend()當事件發(fā)生或等待超時,被掛起的任務就進入就緒態(tài),43,中斷服務態(tài)(ISRrunning),正在執(zhí)行的任務是可以被中斷的,除非該任務將中斷關閉,或系統(tǒng)將中斷關閉。被中斷的任務便進入了中斷服務態(tài)響應中斷后,正在運行的任務被掛起,中斷服務子程序控制了CPU的使用權,44,中斷服務態(tài)(ISRrunning),中斷服務子程序可能會報告一個或多個事件的發(fā)生,而使一個或多個任務進入就緒態(tài)上述情況下,從中斷服務子程序返回之前,C/OSII要判定:被中斷的任務是否還是就緒態(tài)任務中優(yōu)先級最高的如果中斷服務子程序使另一個優(yōu)先級更高的任務進入了就緒態(tài),則新進入就緒態(tài)的這個優(yōu)先級更高的任務將得以運行;否則,原來被中斷了的任務將繼續(xù)運行。,45,任務狀態(tài),當所有的任務都在等待時間發(fā)生或等待延遲時間結束時,C/OSII執(zhí)行被稱為空閑任務(IdleTask)的內部函數(shù),即:OSTaskIdle(),46,任務狀態(tài),任務的CPU使用權被剝奪,中斷,恢復任務,47,任務控制塊(TCB),任務控制塊OS_TCB是一個數(shù)據(jù)結構,保存該任務的相關參數(shù),包括任務堆棧指針、狀態(tài)、優(yōu)先級、任務表位置、任務鏈表指針等所有的任務控制塊分為兩條鏈表:空閑鏈表使用鏈表當任務的CPU使用權被剝奪時,系統(tǒng)用它來保存該任務的狀態(tài)全部駐留在RAM中,48,49,50,空任務列表,所有的任務控制塊都被放置在任務控制塊列表數(shù)組OSTCBTbl中系統(tǒng)初始化時,所有任務控制塊被鏈接成空任務控制塊的單向鏈表任務建立后,空任務控制塊指針OSTCBFreeList指向的任務控制塊就賦給了該任務,然后OSTCBFreeList的值調整為指向鏈表中的下一個空任務控制塊任務一旦被刪除,任務控制塊就還給空任務鏈表,51,任務級的任務調度-OSSched,C/OS是占先式實時多任務內核,優(yōu)先級最高的任務一旦準備就緒,則擁有CPU的所有權即開始投入運行。C/OS中不支持時間片輪轉法,每個任務的優(yōu)先級要求不一樣且是唯一的。因此,任務調度就是:查找準備就緒的最高優(yōu)先級的任務并進行上下文切換。C/OS任務調度所花的時間為常數(shù),與應用程序中建立的任務數(shù)無關。,52,就緒表,根據(jù)就緒表確定最高優(yōu)先級兩個關鍵:優(yōu)先級數(shù)分解為高三位和低三位分別確定高優(yōu)先級有著小的優(yōu)先級號,53,根據(jù)優(yōu)先級找到任務在就緒任務表中的位置,每個就緒的任務都放入就緒表中(readylist)中,就緒表用兩個變量表示:OSRdyGrp、OSRdyTbl,54,采用查表法確定高優(yōu)先級任務,查表法具有確定的時間,增加了系統(tǒng)的可預測性,C/OSII中所有的系統(tǒng)調用時間都是確定的High3=OSUnMapTblOSRdyGrp;Low3=OSUnMapTblOSRdyTblHigh3;Prio=(High3OSTCBStkPtr=SP;調用OSTimeTick();發(fā)出中斷設備的中斷;重新允許中斷(可選用)調用OSIntExit();恢復處理器寄存器的值;執(zhí)行中斷返回指令;,72,時鐘節(jié)拍函數(shù)OSTimeTick(),73,空閑任務OSTaskIdle(),74,C/OS-II初始化,首先調用系統(tǒng)初始化函數(shù)OSIint()。OSIint()初始化C/OS-所有的變量和數(shù)據(jù)結構(見OS_CORE.C)。OSInit()建立空閑任務idletask,這個任務總是處于就緒態(tài)的??臻e任務OSTaskIdle()的優(yōu)先級總是設成最低,即OS_LOWEST_PRIO。如果統(tǒng)計任務允許OS_TASK_STAT_EN和任務建立擴展允許都設為1,則OSInit()還得建立統(tǒng)計任務OSTaskStat()并且讓其進入就緒態(tài)。OSTaskStat的優(yōu)先級總是設為OS_LOWEST_PRIO-1空閑和統(tǒng)計任務的任務控制塊(OS_TCBs)是用雙向鏈表鏈接在一起的。OSTCBList指向這個鏈表的起始處。當建立一個任務時,這個任務總是被放在這個鏈表的起始處。,75,調用OSInit()之后的數(shù)據(jù)結構,76,空閑緩沖區(qū),77,C/OS-的啟動,78,啟動多任務,79,關于OSStartHighRdy,voidOSStartHighRdy(void)調用用戶定義的OSTaskSwHook();OSRunning=TRUE;得到將要恢復運行任務的堆棧指針:Stackpointer=OSTCBHighRdyOSTCBStkPtr從新任務堆棧中恢復處理器的所有寄存器;執(zhí)行中斷返回指令;,80,調用OSStart()之后的數(shù)據(jù)結構,81,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,82,建立任務,UseoneoftwoservicesOSTaskCreate()OSTaskCreateExt(),83,建立任務,OSTaskCreate(),84,85,堆棧檢驗,OSTaskStkChk()刪除任務,OSTaskDel()請求刪除任務,OSTaskDelReq()改變任務的優(yōu)先級,OSTaskChangePrio()掛起任務,OSTaskSuspend()恢復任務,OSTaskResume(),其它相關函數(shù),86,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,87,時間管理,Fiveservices:OSTimeDLY()OSTimeDLYHMSM()OSTimeDlyResmue()OStimeGet()OSTimeSet(),88,OSTimeDly(),89,OSTimeDlyHMSM(),90,主要內容,嵌入式操作系統(tǒng)C/OS-簡介C/OS-內核結構C/OS-任務管理C/OS-時間管理C/OS-任務通信與同步,91,任務間通信手段,C/OS中,采用多種方法保護任務之間的共享數(shù)據(jù)和提供任務之間的通信。提供OS_ENTER_CRITICAL和OS_EXIT_CRITICAL來對臨界資源進行保護OSSchedLock()禁止調度保護任務級的共享資源。提供了經(jīng)典操作系統(tǒng)任務間通信方法:信號量、郵箱、消息隊列,事件標志。,92,事件控制塊ECB,程序4.5ECB的結構如下-typedefstructvoid*OSEventPtr;/*指向消息或消息隊列的指針*/INT8UOSEventTblOS_EVENT_TBL_SIZE;/*等待任務列表*/INT16UOSEventCnt;/*計數(shù)器(當事件是信號量時)*/INT8UOSEventType;/*事件類型:信號量、郵箱等*/INT8UOSEventGrp;/*等待任務組*/OS_EVENT;與TCB類似的結構,使用兩個鏈表,空閑鏈表與使用鏈表,所有的通信信號都被看成是事件(event),一個稱為事件控制塊(ECB,EventControlBlock)的數(shù)據(jù)結構來表征每一個具體事件,ECB的結構如下,93,事件的等待任務列表,94,空閑事件控制塊鏈表,95,事件控制塊TCB的操作,對事件控制塊進行的操作包括:初始化一個事件控制塊OS_EventWaitListInit();使一個任務進入就緒態(tài)OS_EventTaskRdy();使一個任務進入等待某事件的狀態(tài)OS_EventTaskWait();因為等待超時而使一個任務進入就緒態(tài)OS_EventTO()。,96,信號量semaphore,信號量在多任務系統(tǒng)中用于:控制共享資源的使用權、標志事件的發(fā)生、使兩個任務的行為同步。uC/OS中信號量由兩部分組成:信號量的計數(shù)值和等待該信號任務的等待任務表。信號量的計數(shù)值可以為二進制,也可以是其他整數(shù)。系統(tǒng)通過OSSemPend()和OSSemPost()來支持信號量的兩種原子操作P()和V()。P()操作減少信號量的值,如果新的信號量的值不大于0,則操作阻塞;V()操作增加信號量的值。,97,任務、中斷服務子程序和信號量之間的關系,OSSemDel(),98,信號量操作,C/OS-II提供了6個對信號量進行操作的函數(shù)。它們是:OSSemCreate():建立一個信號量OSSemDel():刪除一個信號量OSSemPend():等待一個信號量OSSemPost():發(fā)出一個信號量OSSemAccept():無等待地請求一個信號量當一個任務請求一個信號量時,如果該信號量暫時無效,也可以讓該任務簡單地返回,而不是進入睡眠等待狀態(tài)OSSemQuery()函數(shù):查詢一個信號量的當前狀態(tài),99,郵箱

溫馨提示

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

評論

0/150

提交評論