freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ucos-ii 入門(mén)教程好好學(xué)-全文預(yù)覽

  

【正文】 D1 D0 1 1 1 1 0 0 0 0 prio=29 D7 D6 D5 D4 D3 D2 D1 D0 1 D7 D6 D5 D4 D3 D2 D1 D0 1 OSRdyTbl[y ] x = OSUnMapTal[OSRdyTbl[y]]。 OSRdyTbl[prio3] | = OSMapTbl[prio0x07]。 μC/OS_II進(jìn)行任務(wù)調(diào)度的思想是 “ 近似地每時(shí)每刻總是讓優(yōu)先級(jí)最高的就緒任務(wù)處于運(yùn)行狀態(tài) ” 。 由于這些任務(wù)控制塊還沒(méi)有對(duì)應(yīng)的任務(wù),故這個(gè)鏈表叫做空任務(wù)塊鏈表。 //任務(wù)的當(dāng)前狀態(tài)標(biāo)志 INT8U OSTCBPrio。 //指向任務(wù)堆棧棧頂?shù)闹羔? …… struct os_tcb *OSTCBNext。 //這是系統(tǒng)定義的一個(gè)數(shù)據(jù)類(lèi)型 void main(void) { …… OSTaskCreate( MyTask, //任務(wù)的指針 MyTaskAgu, //傳遞給任務(wù)的參數(shù) MyTaskStk[MyTaskStkN1],//任務(wù)堆棧棧頂?shù)刂? 20 //任務(wù)的優(yōu)先級(jí)別 )。該常數(shù)一旦被定義,則意味著系統(tǒng)中可供使用的優(yōu)先級(jí)別為: 0, 1, 2, …… ,OS_LOWEST_PRIO,共 OS_LOWEST_PRIO+1個(gè) 固定地,系統(tǒng)總是把最低優(yōu)先級(jí)別OS_LOWEST_PRIO自動(dòng)賦給空閑任務(wù)。 //計(jì)數(shù) OS_EXIT_CRITICAL( )。 endif pdata = pdata。 任務(wù)控制塊是不是像我們?nèi)嗽谝粋€(gè)國(guó)家中 的 身份證 ?(其實(shí), 系統(tǒng)中的所有資源 都應(yīng)該有身份證。 任務(wù)控制塊結(jié)構(gòu)的主要成員 typedef struct os_tcb { OS_STK *OSTCBStkPtr。 由于 μC/OSII中的任務(wù)都有一個(gè) 惟一的優(yōu)先級(jí)別,因此 μC/OSII是用 任務(wù)的優(yōu)先級(jí)來(lái)作為任務(wù)的標(biāo)識(shí) 的。 處于就緒狀態(tài)的任務(wù)如果經(jīng)調(diào)度器判斷獲得了CPU的使用權(quán),則任務(wù)就進(jìn)入運(yùn)行狀態(tài) 一個(gè)正在運(yùn)行的任務(wù)一旦響應(yīng)中斷申請(qǐng)就會(huì)中止運(yùn)行而去執(zhí)行中斷服務(wù)程序,這時(shí)任務(wù)的狀態(tài)叫做中斷服務(wù)狀態(tài) 前面談到,一個(gè)任務(wù)的任務(wù)控制塊 的主要作用就是保存該任務(wù)的虛擬 處理器的堆棧指針寄存器 SP。 從應(yīng)用程序設(shè)計(jì)的角度來(lái)看,μC/OSII的任務(wù)就是一個(gè)用戶(hù)編寫(xiě)的 C函數(shù)和與之相關(guān)聯(lián)的一些數(shù)據(jù)結(jié)構(gòu)而構(gòu)成的一個(gè)實(shí)體 。 程序代碼、私有堆棧、任 務(wù)控制塊 是任務(wù)的三要件。 //任務(wù)的當(dāng)前狀態(tài)標(biāo)志 INT8U OSTCBPrio。 這些內(nèi)容通常保存在任務(wù)堆棧中,這些內(nèi)容也常叫做任務(wù)的上下文。任務(wù)堆棧指針( SP) 3。 所謂切換就是: PC 目標(biāo)地址 如何操作 PC 指令: 不同的計(jì)算機(jī)類(lèi)型的指令是不同的。 并發(fā)過(guò)程 示意圖 處理器如何進(jìn)行程序的 切換? 程序的切換(兩句話(huà)) 處理器是個(gè)傻瓜, PC讓它干啥,它就干啥。檢索速度 慢, 且耗費(fèi)的 時(shí)間不固定 ; 應(yīng)用: 存放大量的較大 的表,類(lèi)似檔案柜 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(隊(duì)列) 按照 先進(jìn)先出 的規(guī)則組織的數(shù)據(jù)結(jié)構(gòu) 可以用 數(shù)組 也可以用 鏈 表 來(lái)實(shí)現(xiàn) 主要用于對(duì)象的排隊(duì) 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(堆棧) 按照 先進(jìn)后出 規(guī)則組織的數(shù)據(jù)結(jié)構(gòu) 主要用數(shù)組來(lái)實(shí)現(xiàn) 主要用于 程序模塊的嵌套運(yùn)行 什么是多任務(wù)系統(tǒng) 簡(jiǎn)單地說(shuō),就是能用一個(gè)處理器 并發(fā)(注意,不是同時(shí)! ) 地運(yùn)行多個(gè)程序的計(jì)算機(jī)管理系統(tǒng)。同數(shù)據(jù)類(lèi)型數(shù)據(jù)的集合; 2。 char*name。 }。不同數(shù)據(jù)類(lèi)型數(shù)據(jù)的集合; 2。 int a[10] a[0] a[1] a[2] a[3] a[9] a a+1 使用上的特點(diǎn): 1。同一數(shù)據(jù)類(lèi)型數(shù)據(jù)的集合; 2。 什么是計(jì)算機(jī)操作系統(tǒng) ( Operating System, OS) ?它在計(jì)算機(jī)應(yīng)用程序與計(jì)算機(jī)硬件系統(tǒng)之間, 屏蔽 了計(jì)算機(jī)硬件工作的一些細(xì)節(jié),并對(duì)系統(tǒng)中的資源進(jìn)行有效的 管理 。 。 1. μC/OSII麻雀雖小,卻五臟基本全(它是個(gè)微內(nèi)核)。 二 .對(duì)于初學(xué)者,從 μC/OSII開(kāi)始是個(gè)明智的選擇。 。所以也把它叫做應(yīng)用軟件的運(yùn)行 平臺(tái) 。 計(jì)算機(jī)硬件 用匯編語(yǔ)言編寫(xiě) 的 硬件抽象層 高級(jí)語(yǔ)言的接口 應(yīng)用軟件 操作系統(tǒng) 操作系統(tǒng) 計(jì)算機(jī)操作系統(tǒng)的功能 處理器的管理 存儲(chǔ)管理 網(wǎng)絡(luò)和通信的管理 I/O設(shè)備管理 文件管理 任務(wù)管理 任務(wù)表 存儲(chǔ) 分配表 文件 目錄 設(shè)備表 總之,需要一大堆 表 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(數(shù)組) 數(shù)組 1。元素名去掉編號(hào)(下標(biāo)),得到的是數(shù)組名,數(shù)組名是個(gè)指針。缺點(diǎn):占用連續(xù)空間大 … … a+2 a+3 a+9 應(yīng)用:記錄 同類(lèi)事物 的 表 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(位圖) 位圖是數(shù)組的一種特殊應(yīng)用 a[10] (可以記錄 80個(gè)事物的狀態(tài)) a[0] a[1] a[2] a[3] a[9] a a+1 … … a+2 a+3 a+9 應(yīng)用: 登記表 1/0 D7 D6 D5 D4 D3 D2 D1 D0 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(結(jié)構(gòu)) 1。 char sex。檢索速度快且 恒定 ; 應(yīng)用: 通訊錄中的一條記錄、 工具箱、廚房 等等 next next 兩個(gè)元素的鏈表 操作系統(tǒng)中經(jīng)常使用 的數(shù)據(jù)結(jié)構(gòu)(鏈表) struct Student{ Student*next int age。 1。 分類(lèi) 存放,但空間上不連續(xù)(不需要大量的連續(xù)存儲(chǔ)空間); 2。 且在占用這個(gè)資源期間,并不一 定能夠把程序運(yùn)行完畢。 = PC 深刻地理解 PC是理解系統(tǒng) 進(jìn)行程序切換動(dòng)作的關(guān)鍵。程序的斷點(diǎn)地址( PC) 2。函數(shù)調(diào)用信息(已存在于堆棧) 另外再用一個(gè)數(shù)據(jù)結(jié)構(gòu)保存任務(wù)堆棧 指針( SP),這個(gè)數(shù)據(jù)結(jié)構(gòu)叫做任務(wù) 控制塊,它除了保存任務(wù)堆棧指針之 外還要負(fù)責(zé)保存任務(wù)其他信息。 //指向任務(wù)堆棧棧頂?shù)闹羔? …… INT8U OSTCBStat。 要建立一個(gè)概念:具有 控制塊的程序才是一個(gè) 可以被系統(tǒng)所運(yùn)行的任務(wù)。 在 μ C/OSII中,與上述那些小任務(wù)對(duì)應(yīng)的程序?qū)嶓w就叫做“任務(wù)”(實(shí)質(zhì)上是一個(gè)線程), μ C/OSII就是一個(gè)能對(duì)這些小任務(wù)的運(yùn)行進(jìn)行管理和調(diào)度的多任務(wù)操作系統(tǒng)。 任務(wù)在沒(méi)有被配備任務(wù)控制塊或被剝奪了任務(wù)控制塊時(shí)的狀態(tài)叫做任務(wù)的睡眠狀態(tài) 系統(tǒng)為任務(wù)配備了任務(wù)控制塊且在任務(wù)就緒表中進(jìn)行了就緒登記,這時(shí)任務(wù)的狀態(tài)叫做就緒狀態(tài)。識(shí)別一個(gè)任務(wù) 的最直接的辦法是為每一個(gè)任務(wù)起一 個(gè)名稱(chēng)。 基于上述原因,系統(tǒng)必須為每個(gè)任務(wù)創(chuàng)建 一個(gè)保存與該任務(wù)有關(guān)的相關(guān)信息的數(shù)據(jù) 結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)就叫做該任務(wù)的任務(wù) 控制塊( TCB)。 //任務(wù)的優(yōu)先級(jí)別 …… } OS_TCB。 系統(tǒng)提供的 空閑任務(wù) 在多任務(wù)系統(tǒng)運(yùn)行時(shí),系統(tǒng)經(jīng)常會(huì)在某個(gè)時(shí)間內(nèi)無(wú)用戶(hù)任務(wù)可運(yùn)行而處于所謂的空閑狀態(tài),為了使 CPU在沒(méi)有用戶(hù)任務(wù)可執(zhí)行的時(shí)候有事可做, μ C/OSII提供了一個(gè)叫做空閑任務(wù)OSTaskIdle( )的系統(tǒng)任務(wù) void OSTaskIdle(void* pdata) { if OS_CRITICAL_METHOD = = 3 OS_CPU_SR cpu_sr。//關(guān)閉中斷 OSdleCtr++。數(shù)字 0表示任務(wù)的優(yōu)先級(jí)別最高, 數(shù)字越大則表示任務(wù)的優(yōu)先級(jí)別越低 用戶(hù)可以根據(jù)應(yīng)用程序的需要,在文件常數(shù) OS_LOWEST_PRIO賦值的方法,來(lái)說(shuō)明應(yīng)用程序中任務(wù)優(yōu)先級(jí)別的數(shù)目。 typedef unsigned int OS_STK。 μ C/OSII用來(lái)記錄任務(wù)的堆棧指針、任務(wù)的當(dāng)前狀態(tài)、任務(wù)的優(yōu)先級(jí)別等一些與任務(wù)管理有關(guān)的屬性的表就叫做 任務(wù)控制塊 任務(wù)控制塊就相當(dāng)于是一個(gè)任務(wù)的身份證,沒(méi)有任務(wù)控制塊的任務(wù)是不能被系統(tǒng)承認(rèn)和管理的 任務(wù)控制塊結(jié)構(gòu)的主要成員 typedef struct os_tcb { OS_STK *OSTCBStkPtr。 //任務(wù)等待的時(shí)限 ( 節(jié)拍數(shù) ) INT8U OSTCBStat。這個(gè)函數(shù)首先為被創(chuàng)建任務(wù)從空任務(wù)控制塊鏈表獲取一個(gè)任務(wù)控制塊,然后用任務(wù)的屬性對(duì)任務(wù)控制塊各個(gè)成員進(jìn)行賦值,最后再把這個(gè)任務(wù)控制塊鏈入到任務(wù)控制塊鏈表的頭部 當(dāng)進(jìn)行系統(tǒng)初始化時(shí),初始化函數(shù)會(huì)按用戶(hù)提供的任務(wù)數(shù)為系統(tǒng)創(chuàng)建具有相應(yīng)數(shù)量的任務(wù)控制塊并把它們鏈接為一個(gè)鏈表。 所謂調(diào)度 , 就是通過(guò)一個(gè)算法在多個(gè)任務(wù)中確定該運(yùn)行的任務(wù) , 做這項(xiàng)工作的函數(shù)就叫做調(diào)度器 。 OSRdyTbl[ ] 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 OSRdyGrp D7 D6 D5 D4 D3 D2 D1 D0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 任務(wù)就緒表的示意圖 0 1 2 3 4 5 6 7 x y 0 1 2 3 4 5 6 7 OSRdyGrp D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 0 0 0 0 prio=29 D7 D6 D5 D4 D3 D2 D1 D0 1 D7 D6 D5 D4 D3 D2 D1 D0 1 OSRdyTbl[3 ] 把 prio為 29的任務(wù)置為就緒狀態(tài) Y X OSRdyGrp | =OSMapTbl[prio3]。 如果要使一個(gè)優(yōu)先級(jí)別為 prio的任務(wù)脫離就緒狀態(tài)則可使用如下類(lèi)似代碼: if((OSRdyTbl[prio3]=~OSMapTbl[prio0x07])==0) OSRdyGrp=~OSMapTbl[prio3]。 //D D D3位 x = OSUnMapTal[OSRdyTbl[y]]。 優(yōu)先級(jí)判定表 OSUnMapTbl[256] ( ) INT8U const OSUnMapTbl[] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1