學(xué)習(xí)筆記20170601">【PMP】學(xué)習(xí)筆記20170601
821
2025-03-31
時間片輪轉(zhuǎn)
一、簡介
二、設(shè)置時間片有關(guān)函數(shù)以及變量
任務(wù)TCB添加有關(guān)變量儲存時間片大小
編寫調(diào)度函數(shù)OS_SchedRoundRobin()(每個TICK時調(diào)用)
三、調(diào)用流程
一、簡介
時間片是實現(xiàn)同一優(yōu)先級下有多任務(wù)的功能,在此優(yōu)先級每個任務(wù)運行相應(yīng)的任務(wù)時間片,輪流執(zhí)行,達到共享時間的效果,時間片調(diào)度的思想就是不再分優(yōu)先級,所有任務(wù)按順序,給定時間段切換任務(wù),這種任務(wù)調(diào)度思想和Linux等大型操作系統(tǒng)調(diào)度思想很接近
二、設(shè)置時間片有關(guān)函數(shù)以及變量
任務(wù)TCB添加有關(guān)變量儲存時間片大小
TimeQuanta 任務(wù)需要的時間片數(shù)量
TimeQuantaCtr 任務(wù)還剩下的時間片數(shù)量
編寫調(diào)度函數(shù)OS_SchedRoundRobin()(每個TICK時調(diào)用)
進入臨界段
讀取傳入的就緒列表頭指針任務(wù)(空閑任務(wù)退出)
任務(wù)TCB的時間片(TimeQuantaCtr)數(shù)量減少
減過之后剩余時間片不為0則退出臨界段函數(shù)結(jié)束
自減之后時間片為0則繼續(xù)執(zhí)行
判斷只有一個任務(wù)就退出
時間片為0了,所以這里執(zhí)行把任務(wù)放到此處就緒列表的鏈表的最后節(jié)點
重新獲取就緒列表頭指針的任務(wù)
退出臨界段,結(jié)束函數(shù)
三、調(diào)用流程
初始化
任務(wù)TCB、創(chuàng)建變量;任務(wù)TaskCreat傳入時間片參數(shù)并初始化
調(diào)用
每一個Tick周期調(diào)用時間片調(diào)度函數(shù)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。