两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

實施由一個實時操作系統(tǒng)控制的實時計算機系統(tǒng)的方法

文檔序號:6410464閱讀:183來源:國知局
專利名稱:實施由一個實時操作系統(tǒng)控制的實時計算機系統(tǒng)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及的是一種實施由一個實時操作系統(tǒng)控制的實時計算機系統(tǒng)的方法,該實時計算機系統(tǒng)處理一個技術(shù)進程的中斷信號。
這樣的方法用于例如在公用和專用網(wǎng)絡(luò)的遠程通信組件中使用的實時計算機系統(tǒng)。一個實時計算機系統(tǒng)的特征是,可以在一個已知限制的時間區(qū)間內(nèi)中斷一個程序-例如作為對一個中斷信號反應(yīng)而激活的程序-的處理,使得對該程序的繼續(xù)處理僅在具有更高優(yōu)先級的程序處理完才可能。當(dāng)在遠程通信組件中處理一個程序時,每秒鐘可能發(fā)生例如大約到50000個中斷信號,它們每次都中斷一個正在被處理的程序,并且要求對中斷信號做出反應(yīng)。
已知的實時計算機系統(tǒng)在一個規(guī)定的時間段內(nèi)禁止接收另外的中斷信號,以致不再考慮在該時間段到來的中斷信號,因此可能丟失信息。后面把該時間段稱為中斷禁止時間。中斷禁止時間是需要的,以便微處理器能夠通過處理一個中斷子例程保護其寄存器,至少部分地對中斷信號作出反應(yīng),并且最后重新更新寄存器,以便能夠繼續(xù)運行中斷的程序。中斷禁止時間越長,不考慮到來的中斷信號越多。若有一個改進了的實施實時計算機系統(tǒng)的方法,使中斷禁止時間縮短,那么這種方法將具有很大優(yōu)越性。
因此本發(fā)明的任務(wù)是開發(fā)一個實時操作系統(tǒng)部件,它允許在每一時間單元采集盡可能大數(shù)目出現(xiàn)的中斷信號,并作出反應(yīng)。
該任務(wù)通過下述處理步驟而解決在一個中斷信號出現(xiàn)時。實時計算機系統(tǒng)中斷一個正在處理的程序;禁止接收其它的中斷信號并調(diào)用一個屬于該中斷信號的中斷子例程;在處理該中斷子例程時臨時存儲在中斷信號出現(xiàn)時被中斷程序的第一部分程序參量;在一個中斷存儲器中至少存儲一個關(guān)于該中斷信號的數(shù)據(jù);從中斷子例程轉(zhuǎn)向一個中斷管理子例程,在這種情況下在處理中斷管理子例程時重新開放對其它中斷信號的接收;在處理完中斷管理子例程后清除在中斷存儲器中屬于中斷信號的數(shù)據(jù);臨時存儲中斷信號出現(xiàn)時被中斷程序的剩余部分程序參量;根據(jù)中斷存儲器中關(guān)于中斷信號的數(shù)據(jù)至少激活一個屬于該中斷信號的反應(yīng)子例程并在可能的情況下接入該實時操作系統(tǒng)下處理;在處理完中斷管理子例程后實時操作系統(tǒng)使用臨時存儲的程序參量返回中斷信號出現(xiàn)時被中斷的程序。
本發(fā)明的出發(fā)點是考慮為能夠處理盡可能多的中斷信號而縮短中斷禁止時間。如果把到目前為止必需的指令執(zhí)行過程-它們在已知的方法中落入中斷禁止時間內(nèi)-從一個中斷子例程轉(zhuǎn)移出去,就可以縮短中斷禁止時間。本發(fā)明為屬于單個中斷子例程的反應(yīng)子例程設(shè)計一個中斷管理子例程,每一個為處理中斷信號的動作都由該所屬中斷子例程移到該中斷管理子例程,這些動作在中斷信號出現(xiàn)時不必?zé)o條件地立即執(zhí)行。屬于這種動作的例如有保存微處理器存儲器部分?jǐn)?shù)據(jù),大部分到現(xiàn)在為止在中斷子例程中執(zhí)行的對中斷信號的反應(yīng)步驟和恢復(fù)在中斷信號出現(xiàn)時不必立刻保存的微處理器寄存器的那一部分?jǐn)?shù)據(jù)。
下面把在中斷信號出現(xiàn)時必須保存的那部分微處理器寄存器數(shù)據(jù)稱為中斷信號出現(xiàn)時被中斷程序的程序參量的第一部分(上下文(Kontext)I),它可以例如是該微處理器的標(biāo)志寄存器的內(nèi)容。剩下的要保存的數(shù)據(jù)稱為中斷信號出現(xiàn)時被中斷程序的程序參量的剩余部分(上下文II和III)。
因為在處理中斷管理子例程時重新開放接收另外的中斷信號,相對于已知的方法來說顯著縮短了中斷禁止時間,因此僅丟失較少的中斷信號以及在中斷信號出現(xiàn)時僅在短時期內(nèi)可用的數(shù)據(jù)。
按照本發(fā)明的方法的一個優(yōu)選的實施例在于,在中斷管理子例程開始處恢復(fù)接收其它中斷信號。通過盡早開放接收其它的中斷信號達到,中斷禁止時間僅由一個絕對必需的時間區(qū)間確定,因此最大地縮短。
本發(fā)明的一個優(yōu)選的改進在于,在中斷信號出現(xiàn)時被中斷程序的程序參量的剩余部分(上下文II)部分暫存在一個為程序參量分配給被中斷程序的第一堆棧存儲器中,而部分暫存在一個為程序參量(上下文III)分配給中斷管理子例程的第二堆棧存儲器中。通過這種辦法達到節(jié)省存儲空間,因為在第二堆棧存儲器中存儲的程序參量不必另外為每一個被中斷程序存儲。
下面根據(jù)附圖敘述具有幾種適當(dāng)安排的本發(fā)明的一個實施例,其中


圖1表示在一個中斷信號出現(xiàn)時處理步驟的流程圖;和圖2a、2b、2c表示在處理中斷管理子例程的框架中執(zhí)行的處理步驟的流程圖。
附圖中,用雙箭頭表示禁止接收中斷信號的處理步驟。與此相對,單箭頭表示開放接收另外的中斷信號的處理步驟。
圖1表示一個中斷信號出現(xiàn)時(步驟10)按照本發(fā)明的處理步驟的流程圖。在中斷信號出現(xiàn)時立刻由實時計算機系統(tǒng)禁止接收其它的中斷信號。為使微處理器能在晚些時刻繼續(xù)處理由中斷信號中斷了的程序,必須在執(zhí)行處理出現(xiàn)的中斷信號的步驟之前存儲其寄存器的狀態(tài)。如同已經(jīng)說明的,在中斷信號出現(xiàn)后必須立刻存儲或保存(retten)的那部分被中斷程序的程序參量表示為上下文I。這種保存是在一個中斷禁止生效后實行的(步驟12),這樣,程序參量以預(yù)先給定的順序存儲在一個堆棧存儲器中。
在微處理器保存寄存器數(shù)據(jù)后現(xiàn)在重新允許改變寄存器內(nèi)容時,它就能夠?qū)碜詫崟r計算機系統(tǒng)的其它組成部分,例如中斷接收的電路的中斷信號進行確認(rèn)了(步驟14)。處理步驟12到14在已知的方法中在中斷子例程內(nèi)執(zhí)行,因此在這里也應(yīng)該視為一個中斷子例程的組成部分。
為能夠在晚些時候處理中斷信號,微處理器在一個中斷存儲器中存儲一個指向該中斷信號的數(shù)據(jù)(步驟16)。這個中斷存儲器可以例如是一個指向聯(lián)合為一個存儲器字的多位存儲器單元,其中根據(jù)出現(xiàn)的中斷信號的類型將一個確定的位置位,以便后來可以確定出現(xiàn)過哪一個中斷信號。后面說明這種可能性。
微處理器接著檢驗在中斷信號出現(xiàn)的時刻實時計算機系統(tǒng)是否在處理時間緊要因而是不允許中斷的程序子例程(步驟18)。這種不可中斷的程序的數(shù)目由微處理器存儲在一個存儲單元中,例如一個帶規(guī)定起始值的封鎖計數(shù)器中。該封鎖計數(shù)器在每次調(diào)用一個不可中斷程序時升值,并在處理完一個不可中斷程序后相應(yīng)降低。因此微處理器能夠在處理步驟18時確定,是否在當(dāng)前時刻在處理一個不可中斷程序。如果不是這樣,也就是說封鎖計數(shù)器的存儲單元中存有規(guī)定的起始值,則微處理器通過詢問一個存儲中斷管理子例程的狀態(tài)的狀態(tài)存儲器單元檢驗,是否已經(jīng)激活一個中斷管理子例程(IVR)(步驟20)。如果中斷管理子例程未激活,則調(diào)用它(步驟22)。下面根據(jù)圖2a、2b、2c繼續(xù)說明在中斷管理子例程中要執(zhí)行的處理步驟。
如果在處理步驟18時確定,封鎖計數(shù)器的內(nèi)容偏離它的起始值,因此激活了一個不可中斷程序子例程,或者在處理步驟20時根據(jù)狀態(tài)存儲器單元確定,中斷管理子例程已經(jīng)激活,則向中斷子例程跳轉(zhuǎn)(步驟24)。在中斷子例程中,通過從堆棧寄存器中以逆存儲順序重新讀出處理器寄存器需要的數(shù)據(jù)(步驟26),恢復(fù)上下文I。之后開放接收其它的中斷信號,并且返回到中斷出現(xiàn)時被中斷的程序,以便繼續(xù)處理它(步驟28)。
圖1中所有的處理步驟直到最后的處理步驟28在中斷封鎖生效下都被執(zhí)行,所以到目前為止在中斷禁止時間方面與現(xiàn)有技術(shù)狀態(tài)相比尚未有任何重要的優(yōu)點出現(xiàn)。中斷禁止時間的節(jié)省僅在根據(jù)圖2a、2b、2c的處理步驟下才明顯,因為在那里顯示的處理流圖中大部分處理步驟是在開放接收其它的中斷信號下執(zhí)行的。
圖2a、2b和2c表示中斷管理子例程的處理步驟的流程圖。在中斷管理子例程在處理步驟22被調(diào)用之后,微處理器開始處理中斷管理子例程的處理步驟(步驟40)。
之后,狀態(tài)存儲器單元置位(步驟42)。以此可以在其它的中斷信號出現(xiàn)時在處理步驟20確定,中斷管理子例程是否已經(jīng)激活,因為它在流程正常執(zhí)行時只可以激活一次。
為使中斷禁止時間相對于已知的方法最大可能地縮短,立刻開放接收其它的中斷禁止信號(步驟44)。于是在處理完處理步驟44以后能夠接收其它的中斷信號并處理。這些其它的中斷信號由微處理器在處理步驟16作為數(shù)據(jù)以置位的形式在中斷存儲器登錄。在中斷管理子例程中接著繼續(xù)處理其它的處理步驟時能夠顧及到這些另外的中斷信號。
在中斷信號出現(xiàn)時被中斷程序尚未作為上下文I在處理步驟12保存的那些程序參量將分為兩組。一組由程序參量建立,其保存即臨時存儲在一個為程序參量分配給被中斷程序的堆棧寄存器中,這一程序參量組下面稱為上下文II。另外的剩余程序參量組臨時存儲在一個為程序參量分配給中斷管理子例程的堆棧寄存器中,下面稱為上下文III。
通過這種對剩余的程序參量的劃分能夠顯著節(jié)省存儲器空間,因為上下文III不必每次在被中斷程序的堆棧存儲器中存儲,而僅在中斷管理子例程的堆棧存儲器中臨時存儲。
如同已經(jīng)提到的,上下文II保存在一個分配給被中斷程序的堆棧存儲器中(步驟46)。然后中斷管理子例程的堆棧存儲器激活(步驟48)并接著把上下文III保存在該堆棧存儲器中(步驟50)。通過存儲程序參量,可以在后來繼續(xù)在中斷信號出現(xiàn)時被中斷的程序。接著在步驟52復(fù)位中斷存儲器中分配給中斷信號的位,它們是在中斷信號出現(xiàn)時在處理步驟16置位的。由此可以重新接收和利用由中斷管理子例程正在處理的同一中斷信號。
現(xiàn)在在所有為處理中斷信號而調(diào)用一個子例程的準(zhǔn)備工作結(jié)束后,調(diào)用相應(yīng)于該中斷信號的處理子例程(步驟54)。在處理處理子例程期間已能接收已經(jīng)在處理步驟16中通過將中斷存儲器中相應(yīng)的位置位而進行標(biāo)記的其它的中斷信號。中斷存儲器在處理完處理子例程后在處理步驟54由微處理器詢問置位的位(步驟56)。如果中斷存儲器中這些位已置位,則流程在處理步驟52繼續(xù)。因此流程處在一個由處理步驟52到56構(gòu)成的一個循環(huán)中。在處理該處理循環(huán)時,可以接收通過中斷管理子例程的存儲器發(fā)出信號并且在處理步驟56詢問時顧及到的另外的中斷信號。由于中斷信號的處理相對于已知的方法是在允許進行中斷情況下進行的,因此可以顯著縮短中斷封鎖時間。
在處理步驟56詢問中斷存儲器中置位的位時考慮被接收的中斷信號的優(yōu)先級是有利的。這樣可以相應(yīng)于在中斷存儲器的存儲器字中的優(yōu)先次序,例如每次從右向左,詢問中斷存儲器的單個位,由此確定單個位的優(yōu)先級,其從右向左接收在存儲器字中。
當(dāng)中斷存儲器中所有置位的位復(fù)位(參照處理步驟52)和相應(yīng)的處理子例程處理完(參照處理步驟54)后,流程以在圖2b中的處理步驟繼續(xù)。接著,通過從分配給中斷管理子例程的堆棧存儲器中按照與存儲時的反順序重新讀出上下文III,恢復(fù)上下文III(步驟58)。
為調(diào)用中斷管理子例程,有兩種不同的可能。第一種已經(jīng)敘述的可能是根據(jù)處理步驟22的調(diào)用。在這種情況下,對步驟24到28不做處理。作為第二種可能,如果在中斷信號出現(xiàn)時正在處理不可中斷程序并由此封鎖計數(shù)器在處理步驟18置位,則通過實時操作系統(tǒng)調(diào)用中斷管理子例程。像上面已經(jīng)敘述的那樣,處理步驟24到28在調(diào)用中斷管理子例程之前由實時操作系統(tǒng)執(zhí)行,因此不會在中斷管理子例程內(nèi)再次執(zhí)行。
可以以下述方式由實時操作系統(tǒng)調(diào)用中斷管理子例程在處理完一個不可中斷程序和在降低了封鎖計數(shù)器后,檢驗封鎖計數(shù)器是否有起始值和在中斷存儲器中是否至少有一個分配給中斷信號的位置位。如果這兩個條件滿足,則調(diào)用中斷管理子例程。
為能夠區(qū)別這兩種可能并做相應(yīng)處理,可以在處理步驟58恢復(fù)上下文Ⅲ之后,激活一個分配給中斷管理子例程的程序堆棧存儲器,同時將被中斷程序的堆棧存儲器的地址加載到微處理器的堆棧寄存器,(步驟60)。程序管理子例程是實時操作系統(tǒng)的組成部分,并通過標(biāo)記要處理的程序和以一個預(yù)先給定的順序起動它的處理來協(xié)調(diào)程序處理。
之后提升封鎖計數(shù)器的值(步驟62),因為后續(xù)的處理步驟64和66不能中斷。接著,例如通過將狀態(tài)寄存器單元置零表明中斷管理子例程不在激活狀態(tài)(步驟64),以便能夠再次處理該中斷管理子例程。
之后調(diào)用程序管理子例程(步驟66),它可能啟動一個另外的程序。程序結(jié)束后,程序管理子例程返回中斷管理子例程并封鎖接收其它的中斷信號(步驟68)。
因為在處理處理步驟56到68期間可以接收在處理步驟16將中斷存儲器中分配的位置位的那些中斷信號,因此在處理完中斷管理子例程后離開之前再次詢問,是否在中斷存儲器中還有置位的位(步驟70)。如果是,則不離開中斷管理子例程,而通過相應(yīng)的狀態(tài)存儲器單元重新置為動作狀態(tài)(步驟72),并重新開放接收其它的中斷信號(步驟74)。然后流程在處理步驟48繼續(xù)。中斷管理子例程現(xiàn)在處于由處理步驟48到74組成的另一工作循環(huán)中。這一工作循環(huán)只能當(dāng)中斷存儲器中的所有位已經(jīng)復(fù)位后在處理步驟70離開。在這種情況下,通過將封鎖計數(shù)器的值相應(yīng)降低而復(fù)位封鎖計數(shù)器(步驟76)。
接著,通過換接到中斷信號出現(xiàn)時被中斷程序的堆棧存儲器并以與存儲相反的順序讀出那里存儲的程序參量而恢復(fù)上下文II(步驟78)。
在步驟80,返回中斷子例程,在其中恢復(fù)上下文I(步驟82)。接著返回中斷信號出現(xiàn)時被中斷的程序(步驟84)。以此結(jié)束中斷管理子例程。
權(quán)利要求
1.實施一個由實時操作系統(tǒng)控制的實時計算機系統(tǒng)的方法,它處理一個技術(shù)進程的中斷信號,其中執(zhí)行下述步驟-在中斷信號出現(xiàn)時該實時計算機系統(tǒng)中斷一個正在處理的程序,禁止接收其它的中斷信號,并調(diào)用一個屬于該中斷信號的中斷子例程,-在處理該中斷子例程時臨時存儲中斷信號出現(xiàn)時被中斷程序的程序參量的第一部分(上下文I),-在一個中斷存儲器中至少存儲一個有關(guān)該中斷信號的數(shù)據(jù),-從該中斷子例程向一個中斷管理子例程分支,-在處理中斷管理子例程時開放接收其它的中斷信號,-在處理中斷管理子例程時清除中斷存儲器中屬于該中斷信號的數(shù)據(jù),-臨時存儲中斷信號出現(xiàn)時被中斷程序的程序參量的剩余部分(上下文II和III),-根據(jù)在中斷存儲器中關(guān)于中斷信號的數(shù)據(jù),至少激活一個屬于該中斷信號的反應(yīng)子例程并在可能的情況下由實時操作系統(tǒng)處理,-在處理完中斷管理子例程后實時操作系統(tǒng)使用臨時存儲的程序參量(上下文I到III)返回到中斷信號出現(xiàn)時被中斷的程序。
2.根據(jù)權(quán)利要求1的方法,其特征在于,在中斷管理子例程開始時開放接收其它中斷信號。
3.根據(jù)權(quán)利要求1或2中任何一個權(quán)利要求的方法,其特征在于,程序參量的第一部分(上下文I)包括在一個由實時操作系統(tǒng)控制的微處理器被中斷時刻的處理器寄存器的內(nèi)容。
4.根據(jù)權(quán)利要求1到3中任何一個權(quán)利要求的方法,其特征在于,在處理中斷管理子例程時臨時存儲的程序參量的剩余部分(上下文II和III)包括關(guān)于中斷信號出現(xiàn)時被中斷程序的狀態(tài)信息以及在晚些時候繼續(xù)恢復(fù)被中斷程序必須的信息。
5.根據(jù)權(quán)利要求1到4的方法,其特征在于,中斷信號出現(xiàn)時被中斷程序的程序參量的剩余部份(上下文II和III)部分臨時存儲在一個分配給被中斷程序用于存儲程序參量(上下文II)的第一堆棧存儲器中,部分臨時存儲在一個分配給中斷管理子例程為存儲程序參量(上下文III)的第二堆棧存儲器中。
6.根據(jù)權(quán)利要求1到5中任何一個權(quán)利要求的方法,其特征在于,在多個依次出現(xiàn)的中斷信號的場合,關(guān)于這些中斷信號的數(shù)據(jù)存儲在中斷存儲器中。
7.根據(jù)權(quán)利要求6的方法,其特征在于,有關(guān)出現(xiàn)的中斷信號的數(shù)據(jù)按照一個預(yù)先規(guī)定的順序存儲,以及中斷管理子例程根據(jù)這個順序處理中斷信號。
8.根據(jù)權(quán)利要求1到7中任何一個權(quán)利要求的方法,其特征在于,在處理中斷管理子例程時在中斷存儲器中存儲在此期間出現(xiàn)的其它中斷信號的數(shù)據(jù)以及僅在中斷存儲器中不再存儲有任何關(guān)于中斷信號的數(shù)據(jù)時,中斷管理子例程才能結(jié)束。
9.根據(jù)前述權(quán)利要求中任何一個權(quán)利要求的方法,其特征在于,向中斷管理子例程的分支根據(jù)一個封鎖計數(shù)器的值進行,它計數(shù)該實時操作系統(tǒng)對不可中斷子例程的調(diào)用。
10.根據(jù)權(quán)利要求9的方法,其特征在于,在每次調(diào)用一個不可中斷子例程時,封鎖計數(shù)器的值升高,而在處理完一個不可中斷子例程后封鎖計數(shù)器的值相應(yīng)降低。
11.根據(jù)權(quán)利要求9或10的方法,其特征在于,如果封鎖計數(shù)器中有一個不是預(yù)先規(guī)定的起始值,或者中斷管理子例程尚未完全處理完畢,則實時操作系統(tǒng)使用臨時存儲的程序參量(上下文I到III)在中斷管理子例程結(jié)束前分支返回到中斷信號出現(xiàn)時被中斷的程序。
12.根據(jù)權(quán)利要求9到11中任何一個權(quán)利要求的方法,其特征在于,僅在封鎖計數(shù)器具有預(yù)先規(guī)定的起始值和在中斷存儲器中至少存儲有一個關(guān)于中斷信號的數(shù)據(jù)時才向中斷管理子例程分支。
13.根據(jù)權(quán)利要求5到12中任何一個權(quán)利要求的方法,其特征在于,僅在中斷存儲器中不存儲有任何數(shù)據(jù)時才恢復(fù)在分配給中斷管理子例程的第二堆棧存儲器中臨時存儲的程序參量(上下文III)。
14.根據(jù)權(quán)利要求5到13中任何一個權(quán)利要求的方法,其特征在于,僅在中斷存儲器中不存儲有任何數(shù)據(jù)時才恢復(fù)在分配給被中斷程序的第一堆棧存儲器中臨時存儲的程序參量(上下文I和II)。
全文摘要
說明一個實施由一個實時操作系統(tǒng)控制的計算機系統(tǒng)的方法,該計算機系統(tǒng)處理中斷信號。在中斷信號出現(xiàn)時,計算機系統(tǒng)中斷一個正在處理的程序。封鎖接收另外的中斷信號并調(diào)用一個屬于該中斷信號的中斷子例程。在處理這個中斷子例程時,臨時存儲中斷信號出現(xiàn)時被中斷的程序的程序參量的第一部分,并且在一個中斷存儲器中至少存儲一個關(guān)于中斷信號的數(shù)據(jù)。從該中斷子例程向一個中斷管理子例程(IVR)分支,其中在處理IVR時重新開放接收其它的中斷信號。
文檔編號G06F13/20GK1155698SQ9611241
公開日1997年7月30日 申請日期1996年9月25日 優(yōu)先權(quán)日1995年9月25日
發(fā)明者F·布蘭克, P·施林斯基, B·施特爾, U·韋辛格 申請人:西門子公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凉山| 镇巴县| 波密县| 称多县| 石嘴山市| 财经| 临澧县| 广德县| 大新县| 福鼎市| 无锡市| 民丰县| 新龙县| 遂昌县| 巴南区| 金昌市| 东港市| 东山县| 通海县| 彩票| 邳州市| 方正县| 三河市| 买车| 泰来县| 阿合奇县| 洞头县| 土默特左旗| 贺兰县| 彝良县| 定边县| 玉门市| 江油市| 余干县| 涟水县| 琼结县| 夏津县| 四子王旗| 唐山市| 南阳市| 香港 |