欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置的制作方法

文檔序號:6340802閱讀:180來源:國知局
專利名稱:實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及到計(jì)算機(jī)領(lǐng)域,特別涉及到一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置。
背景技術(shù)
目前的操作系統(tǒng)可以在任務(wù)/線程或硬中斷中觸發(fā)軟中斷,其中斷處理優(yōu)先級是硬中斷優(yōu)先級高于軟中斷優(yōu)先級,軟中斷優(yōu)先級高于任務(wù)優(yōu)先級。軟中斷可以觸發(fā)其他軟中斷(包括觸發(fā)自身),支持優(yōu)先級調(diào)用但不支持優(yōu)先級搶占,即如果低優(yōu)先級軟中斷觸發(fā)高優(yōu)先級軟中斷,必須等低優(yōu)先級中斷處理完后才能響應(yīng)高優(yōu)先級軟中斷。

發(fā)明內(nèi)容
本發(fā)明的主要目的為提供一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置,實(shí)現(xiàn)高優(yōu)先級搶占低優(yōu)先級的軟中斷嵌套服務(wù)機(jī)制。本發(fā)明提出一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,包括判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級;其中,優(yōu)先級為預(yù)先設(shè)置;當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并返回判斷是否存在被觸發(fā)的軟中斷,直到嵌套計(jì)數(shù)器為0。優(yōu)選地,在執(zhí)行所述執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷之前,包括將所述最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。優(yōu)選地,在執(zhí)行所述判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級之后,包括當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;在嵌套計(jì)數(shù)器不為0時(shí),返回執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。優(yōu)選地,在執(zhí)行所述判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級之前,包括判斷被觸發(fā)的軟中斷是否硬中斷觸發(fā);當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷。
優(yōu)選地,在執(zhí)行所述判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā)之后,包括當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。本發(fā)明還提出一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,包括第一判斷模塊,用于判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級;其中,優(yōu)先級為預(yù)先設(shè)置;加數(shù)模塊,用于當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;執(zhí)行模塊,用于執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;減數(shù)模塊,用于將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并利用第一判斷模塊繼續(xù)進(jìn)行判斷,直到嵌套計(jì)數(shù)器為0。優(yōu)選地,所述實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置還包括刪除中斷模塊,用于將所述最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;更改標(biāo)識模塊,用于當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。優(yōu)選地,所述實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置還包括第二判斷模塊,用于當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;返回軟中斷模塊,用于在嵌套計(jì)數(shù)器不為0時(shí),利用執(zhí)行模塊執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;返回任務(wù)模塊,用于在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。優(yōu)選地,所述實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置還包括第四判斷模塊,用于判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā);硬中斷模塊,用于當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷。優(yōu)選地,所述實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置還包括第三判斷模塊,用于當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;棧切換模塊,用于當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。本發(fā)明提出的一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置,通過中斷嵌套,實(shí)現(xiàn)高優(yōu)先級軟中斷搶占低優(yōu)先級軟中斷嵌套服務(wù)機(jī)制。


圖1為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法一實(shí)施例的流程示意圖;圖2為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法又一實(shí)施例的流程示意圖;圖3為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法另一實(shí)施例的流程示意圖;圖4為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置一實(shí)施例的結(jié)構(gòu)示意圖;圖5為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置又一實(shí)施例的結(jié)構(gòu)示意圖;圖6為本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置另一實(shí)施例的結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施例方式本發(fā)明提出的一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置,通過中斷嵌套,實(shí)現(xiàn)高優(yōu)先級軟中斷搶占低優(yōu)先級軟中斷。參照圖1,提出本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法一實(shí)施例,包括步驟S101,判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級,其中,優(yōu)先級為預(yù)先設(shè)置;本發(fā)明的操作系統(tǒng)首先設(shè)置一實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,該裝置內(nèi)置于操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置在任務(wù)、軟中斷或硬中斷中調(diào)用接口觸發(fā)軟中斷,如果該軟中斷的觸發(fā)標(biāo)記顯示該軟中斷的當(dāng)前狀態(tài)為已觸發(fā),則直接返回觸發(fā)調(diào)用處,此次觸發(fā)無效。如該軟中斷的觸發(fā)標(biāo)記顯示該軟中斷的當(dāng)前狀態(tài)為未觸發(fā),將軟中斷入相應(yīng)的優(yōu)先級隊(duì)列進(jìn)行管理,軟中斷的優(yōu)先級為根據(jù)需要預(yù)先設(shè)置。判斷各軟中斷優(yōu)先級隊(duì)列中是否存在比當(dāng)前在執(zhí)行的軟中斷更高優(yōu)先級的軟中斷。步驟S102,當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加1 ;如果存在比當(dāng)前在執(zhí)行的軟中斷更高優(yōu)先級的軟中斷,則將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值,該預(yù)設(shè)值通常為1,表明存在嵌套。并可將最高優(yōu)先級隊(duì)列的首個(gè)軟中斷標(biāo)識為已觸發(fā)。步驟S103,執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級隊(duì)列中的一軟中斷,通常為該隊(duì)列中的首個(gè)軟中斷,執(zhí)行過程為開中斷,進(jìn)行軟中斷的中斷服務(wù)程序,再關(guān)中斷。步驟S104,將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并返回步驟S101,直到嵌套計(jì)數(shù)器為0。當(dāng)執(zhí)行完最高優(yōu)先級隊(duì)列中的一軟中斷后,將嵌套計(jì)數(shù)器減1,并重新判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷,直到嵌套計(jì)數(shù)器為0。以任務(wù)A觸發(fā)軟中斷B為例,首先根據(jù)軟中斷B的觸發(fā)標(biāo)識判斷該軟中斷B之前沒有被觸發(fā),將軟中斷B放入相應(yīng)的優(yōu)先級隊(duì)列如優(yōu)先級2的隊(duì)列。由于軟中斷的優(yōu)先級高于任務(wù),則嵌套計(jì)數(shù)器加1,可將軟中斷B標(biāo)識為已觸發(fā),并開中斷,執(zhí)行軟中斷B,當(dāng)執(zhí)行過程中,軟中斷B又觸發(fā)軟中斷C,如軟中斷C的優(yōu)先級為1,則由于軟中斷C的優(yōu)先級高于軟中斷B的優(yōu)先級,則嵌套計(jì)數(shù)器再加1,執(zhí)行軟中斷C,執(zhí)行完軟中斷C后嵌套計(jì)數(shù)器減1,返回判斷是否存在比軟中斷B更高優(yōu)先級的軟中斷,如不存在則繼續(xù)執(zhí)行軟中斷B,軟中斷B執(zhí)行完畢后返回執(zhí)行任務(wù)A。本發(fā)明提出的一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,通過中斷嵌套,實(shí)現(xiàn)高優(yōu)先級軟中斷搶占低優(yōu)先級軟中斷嵌套服務(wù)機(jī)制。參照圖2,提出本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法又一實(shí)施例,本實(shí)施例中,在執(zhí)行上述步驟S103之前,包括步驟S1021,將最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;步驟S1022,當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。
優(yōu)先級隊(duì)列的隊(duì)空標(biāo)識可以為0或者1,當(dāng)隊(duì)列中有隊(duì)員時(shí)則置1,當(dāng)隊(duì)列中隊(duì)空時(shí)則置0,實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置可以根據(jù)隊(duì)空標(biāo)識判斷該隊(duì)列是否為空。本實(shí)施例中,可將執(zhí)行的軟中斷從優(yōu)先級隊(duì)列中刪除,并更改隊(duì)空標(biāo)識,在上述實(shí)施例的基礎(chǔ)上,節(jié)約了系統(tǒng)資源。參照圖3,提出本發(fā)明實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法另一實(shí)施例,本實(shí)施例中,在執(zhí)行上述步驟SlOl之前,還包括步驟S97,判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā);步驟S98,當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷;當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),則優(yōu)先執(zhí)行硬中斷。步驟S99,當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0,即該軟中斷是否為第一個(gè)被觸發(fā)的軟中斷。步驟S100,當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。當(dāng)嵌套計(jì)數(shù)器為0時(shí),則由當(dāng)前任務(wù)棧切換到系統(tǒng)棧。在執(zhí)行步驟SlOl之后,還包括步驟S1011,當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷時(shí),表明當(dāng)前軟中斷的優(yōu)先級最高,則判斷嵌套計(jì)數(shù)器是否為0,即所有軟中斷是否執(zhí)行完畢。在嵌套計(jì)數(shù)器不為0時(shí),返回執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;嵌套計(jì)數(shù)器不為0,則已觸發(fā)的軟中斷未執(zhí)行完畢,返回到正在執(zhí)行的軟中斷。在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。嵌套計(jì)數(shù)器為0,則所有已觸發(fā)的軟中斷已執(zhí)行完畢,返回任務(wù)調(diào)度。本實(shí)施例在上述實(shí)施例在基礎(chǔ)上,將軟中斷和硬中斷的執(zhí)行都在系統(tǒng)棧執(zhí)行,節(jié)約了內(nèi)存空間。參照圖4,提出本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置一實(shí)施例,包括第一判斷模塊10,用于判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級,其中,優(yōu)先級為預(yù)先設(shè)置;加數(shù)模塊20,用于當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí)時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;執(zhí)行模塊30,用于執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;減數(shù)模塊40,用于將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并利用第一判斷模塊10繼續(xù)進(jìn)行判斷,直到嵌套計(jì)數(shù)器為0。本發(fā)明的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,可內(nèi)置于操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置在任務(wù)或軟中斷中調(diào)用接口觸發(fā)軟中斷,如果該軟中斷的觸發(fā)標(biāo)記顯示該軟中斷的當(dāng)前狀態(tài)為已觸發(fā),則直接返回觸發(fā)調(diào)用處,此次觸發(fā)無效。如該軟中斷的觸發(fā)標(biāo)記顯示該軟中斷的當(dāng)前狀態(tài)為未觸發(fā),將軟中斷入相應(yīng)的優(yōu)先級隊(duì)列進(jìn)行管理,軟中斷的優(yōu)先級為根據(jù)需要預(yù)先設(shè)置。
第一判斷模塊10判斷各軟中斷優(yōu)先級隊(duì)列中是否存在比當(dāng)前在執(zhí)行的軟中斷更高優(yōu)先級的軟中斷。如果存在比當(dāng)前在執(zhí)行的軟中斷更高優(yōu)先級的軟中斷,加數(shù)模塊20將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值,該預(yù)設(shè)值通常為1,表明存在嵌套。并可將最高優(yōu)先級隊(duì)列的首個(gè)軟中斷標(biāo)識為已觸發(fā)。執(zhí)行模塊30執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級隊(duì)列中的一軟中斷,通常為該隊(duì)列中的首個(gè)軟中斷,執(zhí)行過程為開中斷,進(jìn)行軟中斷的中斷服務(wù)程序,再關(guān)中斷。當(dāng)執(zhí)行完最高優(yōu)先級隊(duì)列中的一軟中斷后,減數(shù)模塊40將嵌套計(jì)數(shù)器減1,并由第一判斷模塊10重新判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷,直到嵌套計(jì)數(shù)器為0。以任務(wù)A觸發(fā)軟中斷B為例,首先根據(jù)軟中斷B的觸發(fā)標(biāo)識判斷該軟中斷B之前沒有被觸發(fā),將軟中斷B放入相應(yīng)的優(yōu)先級隊(duì)列如優(yōu)先級2的隊(duì)列。由于軟中斷的優(yōu)先級高于任務(wù),則嵌套計(jì)數(shù)器加1,可將軟中斷B標(biāo)識為已觸發(fā),并開中斷,執(zhí)行軟中斷B,當(dāng)執(zhí)行過程中,軟中斷B又觸發(fā)軟中斷C,如軟中斷C的優(yōu)先級為1,則由于軟中斷C的優(yōu)先級高于軟中斷B的優(yōu)先級,則嵌套計(jì)數(shù)器再加1,執(zhí)行軟中斷C,執(zhí)行完軟中斷C后嵌套計(jì)數(shù)器減1,返回判斷是否存在比軟中斷B更高優(yōu)先級的軟中斷,如不存在則繼續(xù)執(zhí)行軟中斷B,軟中斷B執(zhí)行完畢后返回執(zhí)行任務(wù)A。本發(fā)明提出的一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,通過中斷嵌套,實(shí)現(xiàn)高優(yōu)先級軟中斷搶占低優(yōu)先級軟中斷嵌套服務(wù)機(jī)制。參照圖5,提出本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置又一實(shí)施例,本實(shí)施例中,上述裝置還包括刪除中斷模塊50,用于將最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;更改標(biāo)識模塊60,用于當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。優(yōu)先級隊(duì)列的隊(duì)空標(biāo)識可以為0或者1,當(dāng)隊(duì)列中有隊(duì)員時(shí)則置1,當(dāng)隊(duì)列中隊(duì)空時(shí)則置0,實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置可以根據(jù)隊(duì)空標(biāo)識判斷該隊(duì)列是否為空。本實(shí)施例中,可將執(zhí)行的軟中斷從優(yōu)先級隊(duì)列中刪除,并更改該隊(duì)列的隊(duì)空標(biāo)識,在上述實(shí)施例的基礎(chǔ)上,節(jié)約了系統(tǒng)資源。參照圖6,提出本發(fā)明一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置另一實(shí)施例,上述裝置還包括第四判斷模塊130,用于判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā);硬中斷模塊70,用于當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷。第三判斷模塊80,用于當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0;棧切換模塊90,用于當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。第二判斷模塊100,用于當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;返回軟中斷模塊110,用于在嵌套計(jì)數(shù)器不為0時(shí),利用執(zhí)行模塊30執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;返回任務(wù)模塊120,用于在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。第四判斷模塊130判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā),當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),則硬中斷模塊70優(yōu)先執(zhí)行硬中斷。當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),第三判斷模塊80判斷嵌套計(jì)數(shù)器是否為0,即該軟中斷是否為第一個(gè)被觸發(fā)的軟中斷。當(dāng)嵌套計(jì)數(shù)器為0時(shí),則棧切換模塊90由當(dāng)前任務(wù)棧切換到系統(tǒng)棧。當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷時(shí),表明當(dāng)前軟中斷的優(yōu)先級最高,則第二判斷模塊100判斷嵌套計(jì)數(shù)器是否為0,即所有軟中斷是否執(zhí)行完畢。嵌套計(jì)數(shù)器不為0,則已觸發(fā)的軟中斷未執(zhí)行完畢,返回軟中斷模塊110返回到正在執(zhí)行的軟中斷。嵌套計(jì)數(shù)器為0,則所有已觸發(fā)的軟中斷已執(zhí)行完畢,返回任務(wù)模塊120返回任務(wù)調(diào)度。本實(shí)施例在上述實(shí)施例在基礎(chǔ)上,將軟中斷和硬中斷的執(zhí)行都在系統(tǒng)棧執(zhí)行,節(jié)約了內(nèi)存空間。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,其特征在于,包括步驟1、判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級;其中,優(yōu)先級為預(yù)先設(shè)置;步驟2、當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;步驟3、執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;步驟4、將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并返回步驟1,直到嵌套計(jì)數(shù)器為0。
2.如權(quán)利要求1所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,其特征在于,在執(zhí)行所述執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷之前,包括將所述最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。
3.如權(quán)利要求1或2所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,其特征在于,在執(zhí)行所述判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級之后,包括當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0;在嵌套計(jì)數(shù)器不為0時(shí),返回執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。
4.如權(quán)利要求1或2所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,其特征在于,在執(zhí)行所述判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級之前,包括判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā);當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷。
5.如權(quán)利要求4所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,其特征在于,在執(zhí)行所述判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā)之后,包括當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。
6.一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,其特征在于,包括第一判斷模塊,用于判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級;其中,優(yōu)先級為預(yù)先設(shè)置;加數(shù)模塊,用于當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;執(zhí)行模塊,用于執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;減數(shù)模塊,用于將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并利用第一判斷模塊繼續(xù)進(jìn)行判斷,直到嵌套計(jì)數(shù)器為0。
7.如權(quán)利要求6所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,其特征在于,還包括刪除中斷模塊,用于將所述最高優(yōu)先級的軟中斷標(biāo)識為已觸發(fā),并從該隊(duì)列中刪除該軟中斷;更改標(biāo)識模塊,用于當(dāng)該隊(duì)列為空時(shí),更改該隊(duì)列的隊(duì)空標(biāo)識。
8.如權(quán)利要求6或7所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,其特征在于,還包括第二判斷模塊,用于當(dāng)不存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;返回軟中斷模塊,用于在嵌套計(jì)數(shù)器不為0時(shí),利用執(zhí)行模塊執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;返回任務(wù)模塊,用于在嵌套計(jì)數(shù)器為0時(shí),返回任務(wù)調(diào)度。
9.如權(quán)利要求6或7所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,其特征在于,還包括第四判斷模塊,用于判斷被觸發(fā)的軟中斷是否為硬中斷觸發(fā);硬中斷模塊,用于當(dāng)被觸發(fā)的軟中斷為硬中斷觸發(fā)時(shí),執(zhí)行該硬中斷。
10.如權(quán)利要求9所述的實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)裝置,其特征在于,還包括第三判斷模塊,用于當(dāng)被觸發(fā)的軟中斷非硬中斷觸發(fā)時(shí),判斷嵌套計(jì)數(shù)器是否為0 ;棧切換模塊,用于當(dāng)嵌套計(jì)數(shù)器為0時(shí),切換系統(tǒng)棧。
全文摘要
本發(fā)明揭示了一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法,包括步驟1、判斷是否存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級;其中,優(yōu)先級為預(yù)先設(shè)置;步驟2、當(dāng)存在被觸發(fā)的軟中斷,其優(yōu)先級高于當(dāng)前軟中斷的優(yōu)先級時(shí),將預(yù)設(shè)的嵌套計(jì)數(shù)器加預(yù)設(shè)值;步驟3、執(zhí)行被觸發(fā)軟中斷的優(yōu)先級隊(duì)列中最高優(yōu)先級的軟中斷;步驟4、將嵌套計(jì)數(shù)器減預(yù)設(shè)值,并返回步驟1,直到嵌套計(jì)數(shù)器為0。本發(fā)明還提出了相應(yīng)的裝置。本發(fā)明提供的一種實(shí)時(shí)操作系統(tǒng)的軟中斷實(shí)現(xiàn)方法及裝置,實(shí)現(xiàn)高優(yōu)先級搶占低優(yōu)先級的軟中斷嵌套服務(wù)機(jī)制。
文檔編號G06F9/48GK102567104SQ20101061636
公開日2012年7月11日 申請日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者康健, 趙路 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
名山县| 巴中市| 卢湾区| 喀什市| 清流县| 呈贡县| 新丰县| 衡东县| 滦南县| 青神县| 二连浩特市| 潍坊市| 杭锦旗| 库伦旗| 佳木斯市| 自治县| 武义县| 东海县| 修水县| 南平市| 平陆县| 西乌| 楚雄市| 兰州市| 霍山县| 甘泉县| 偏关县| 伊金霍洛旗| 桐乡市| 新和县| 衡东县| 四会市| 兴城市| 分宜县| 和林格尔县| 新和县| 宜城市| 晋中市| 乌兰察布市| 即墨市| 称多县|