售前電話
135-3656-7657
售前電話 : 135-3656-7657
調(diào)度事件處理的操作如下:
•事件計數(shù)器減1。某一等待調(diào)度的事件處理即將執(zhí)行,故事件計數(shù)器的內(nèi)容應(yīng)減
•預(yù)置正常執(zhí)行時限計數(shù)器。正常執(zhí)行時限計數(shù)器的值置成對應(yīng)于該事件處理的執(zhí)行時長的容許值,每當時鐘中斷插入時計數(shù)器減1,這樣可以檢查事件處理的執(zhí)行時長是否超過一定限度而陷入異常情況。
•作業(yè)類型置成“事件處理運行七作業(yè)類型反映了當前正在執(zhí)行的作業(yè)的類型,目前即將調(diào)度事件處理,故應(yīng)置成“事件處理運行”:ACTUJOB一TYPE-EVHDL
•事件標志表中對應(yīng)的事件標志復(fù)位。
•中斷控制塊指針(ICB-PTR)指向事件處理所用的ICB」CB_PTR總是指向當前調(diào)度的程序所用的ICB,以便一旦發(fā)生中斷時立即可在ICB中保存被中斷的程序的環(huán)境。
•該事件處理在事件標志表中的索引號存入RUN_JOB(運行作業(yè))。
•0S_COUNTER一EV_HDLR_DSPTCH(事件處理調(diào)度計數(shù)器)加lo
•轉(zhuǎn)換中斷屏蔽字。
•調(diào)用PMC_DISPATCH一SSM,設(shè)置SSM堆棧,通過PMC_DOMAIN-TABLE,可得到相應(yīng)的事件處理的環(huán)境,以實現(xiàn)該事件處理的調(diào)度。
•事件處理執(zhí)行完畢,恢復(fù)OSN中斷屏蔽字和OSN作業(yè)類型,再去檢查事件標志表是否還有要調(diào)度的事件處理。
檢查作業(yè)狀態(tài)字
為便于進程調(diào)度,設(shè)置了16b的作業(yè)狀態(tài)字(JOBSTATUSWORD-JSW),如圖5?29所示。
前已述及,準備發(fā)送到進程的消息分為8級,編成8個隊列,稱為就緒隊列(ReadyQueue)o此外,每一級還有一個ICB,用來在發(fā)生中斷時保護被中斷的進程的現(xiàn)場環(huán)境。
對照圖5.29,JSW的16個比特分屬于8級,每級2個比特:ICB比特和消息隊列比特,含義如下:
圖5.29中,每級的2個比特是從右到左按級別次序0?7排列的;而在每一級中,ICB比特又排在消息隊列比特的右面。在搜查時,是從右到左依次檢查各個比特的值;這就保證了前述的進程調(diào)度策略的實現(xiàn)。如果發(fā)現(xiàn)某一級的ICB比特置位:可用該ICB比特所對應(yīng)的優(yōu)先級號碼查ICB指針表(ICB-PTR-TABL),以得到該ICB的起始地址。ICB指針表有8行,存放有對應(yīng)于8級進程的ICB的地址。得到ICB的地址后,轉(zhuǎn)到“ICB處理”的入口,以恢復(fù)被中斷的進程的執(zhí)行。