專利名稱:實時處理系統(tǒng)中的共享資源訪問方法和實時處理系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,具體而言,涉及一種實時處理系統(tǒng)中的共享資源訪問方法和實時處理系統(tǒng)。
背景技術:
對于實時處理系統(tǒng),數(shù)據(jù)的實時處理是系統(tǒng)的重要考量指標。為了提高數(shù)據(jù)的并行處理效率,往往采用多線程處理機制。多線程處理過程中,可能會發(fā)生兩個以上的線程同時訪問相同的數(shù)據(jù),因此需要考慮對系統(tǒng)中共享資源的訪問處理問題。目前,在多線程訪問共享數(shù)據(jù)時,通常的做法是引入信號量加鎖來保證資源的互斥訪問。但這種信號量加鎖的方法往往容易產(chǎn)生漏鎖或死鎖等問題,使得在系統(tǒng)調(diào)試階段容易發(fā)生異常掛起(即,死機)等現(xiàn)象,并且該異常情況的定位比較困難。
針對相關技術中信號量加鎖的方式容易導致系統(tǒng)掛起的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種實時處理系統(tǒng)中的共享資源訪問方法和實時處理系統(tǒng),以至少解決上述信號量加鎖的方式容易導致系統(tǒng)掛起的問題。根據(jù)本發(fā)明的一個方面,提供了一種實時處理系統(tǒng)中的共享資源訪問方法,包括啟動實時處理系統(tǒng)的線程;其中,該實時處理系統(tǒng)包括多個IPU,每個II3U包括CP線程和ICO線程,IPU內(nèi)的線程的優(yōu)先級關系為CP線程的優(yōu)先級> ICO線程的優(yōu)先級;接收用戶輸入的配置命令,將配置命令緩存在CDB中;其中,CDB的線程優(yōu)先級< ICO線程的優(yōu)先級;在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。其中,根據(jù)各個線程的優(yōu)先級訪問共享資源包括在實時處理系統(tǒng)處于空閑狀態(tài)時,從⑶B中讀取配置命令;根據(jù)配置命令確定對應IPU的CP線程,將配置命令發(fā)送給確定的CP線程;CP線程根據(jù)配置命令對共享資源進行處理。其中,從⑶B中讀取配置命令時按照FIFO原則讀取。其中,根據(jù)配置命令確定對應IPU的CP線程包括根據(jù)配置命令查詢命令映射表,命令映射表中保存有命令集與CP線程的對應關系;根據(jù)查詢的結構確定對應IPU的CP線程。上述將配置命令發(fā)送給確定的CP線程是通過異步發(fā)送方式發(fā)送的。上述根據(jù)各個線程的優(yōu)先級訪問共享資源包括當ICO線程的運行時間到達時,運行ICO線程訪問共享資源。上述IPU的線程運行過程中禁止調(diào)用操作系統(tǒng)的延時操作。其中,上述多個IPU的功能獨立。如果兩個ITO之間需要傳輸數(shù)據(jù),上述方法還包括發(fā)起數(shù)據(jù)傳輸?shù)腎PU向接收數(shù)據(jù)的IPU發(fā)送通告信息。
其中,上述發(fā)起數(shù)據(jù)傳輸?shù)腎TO向接收數(shù)據(jù)的IPU發(fā)送通告信息包括確定發(fā)起數(shù)據(jù)傳輸?shù)木€程是否為ICO線程,如果是,確定接收數(shù)據(jù)的線程是否為CP線程;如果是CP線程,則調(diào)整兩個IPU中的ICO線程的優(yōu)先級,使第一 ICO線程的優(yōu)先級小于第二 ICO線程的優(yōu)先級;其中,第一 ICO線程為發(fā)起數(shù)據(jù)傳輸?shù)腎PU中的ICO線程,第二 ICO線程為接收數(shù)據(jù)的IPU中的ICO線程。根據(jù)本發(fā)明的另一方面,提供了一種實時處理系統(tǒng),包括線程啟動模塊,用于啟動實時處理系統(tǒng)的線程;其中,該實時處理系統(tǒng)包括多個IPU,每個IPU包括CP線程和ICO線程,IPU內(nèi)的線程的優(yōu)先級關系為CP線程的優(yōu)先級> ICO線程的優(yōu)先級;配置命令緩存模塊,用于接收用戶輸入的配置命令,將配置命令緩存在CDB中;其中,CDB的線程優(yōu)先級< ICO線程的優(yōu)先級;資源訪問模塊,用于在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。其中,上述資源訪問模塊包括配置命令讀取單元,用于在實時處理系統(tǒng)處于空閑狀態(tài)時,從⑶B中讀取配置命令;配置命令發(fā)送單元,用于根據(jù)配置命令確定對應IPU的CP 線程,將配置命令發(fā)送給確定的CP線程;處理單元,用于通過CP線程根據(jù)配置命令對共享資源進行處理。通過本發(fā)明,根據(jù)線程的優(yōu)先級訪問共享資源,規(guī)避多個線程共享資源時的訪問沖突,解決了因信號量加鎖的方式容易導致系統(tǒng)掛起的問題,增強了系統(tǒng)的穩(wěn)定性和可靠性。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖I是根據(jù)本發(fā)明實施例I的實時處理系統(tǒng)中的共享資源訪問方法流程圖;圖2是根據(jù)本發(fā)明實施例I的實時處理系統(tǒng)結構示意圖;圖3是根據(jù)本發(fā)明實施例I的共享資源訪問的處理流程圖;圖4是根據(jù)本發(fā)明實施例I的通告信息由CP發(fā)起時的消息發(fā)送示意圖;圖5是根據(jù)本發(fā)明實施例I的通告信息由ICO發(fā)起時的消息發(fā)送示意圖;圖6是根據(jù)本發(fā)明實施例I的單板嵌入式軟件系統(tǒng)的結構示意圖;圖7是根據(jù)本發(fā)明實施例2的實時處理系統(tǒng)的結構框圖;圖8是根據(jù)本發(fā)明實施例2的資源訪問模塊的結構框圖。
具體實施例方式下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。本發(fā)明實施例利用線程優(yōu)先級來規(guī)避對資源共享訪問時的處理,可以應用在多線程單核實時處理系統(tǒng)中,能夠?qū)崿F(xiàn)對共享資源的互斥訪問。基于此,提供了一種實時處理系統(tǒng)中的共享資源訪問方法和實時處理系統(tǒng)。實施例I本實施例提供了一種實時處理系統(tǒng)中的共享資源訪問方法,參見圖1,該方法包括以下步驟(步驟S102-106)步驟S102,啟動實時處理系統(tǒng)的線程;其中,本實施例的實時處理系統(tǒng)包括多個獨立處理單元(Independent ProcessUnit, IPU),每個IPU包括配置命令處理(Config Process, CP)線程和實時信息采集與運算(Information Collection and Operation, ICO)線程,IPU 內(nèi)線程的優(yōu)先級關系為CP線程的優(yōu)先級> ICO線程的優(yōu)先級;在實際實現(xiàn)時,一個IPU內(nèi)可以設置一個CP線程和一個ICO線程,在一個IPU內(nèi)的CP線程和ICO線程可以共享資源,當有多個實時信息采集與運算命令均需要訪問該IPU內(nèi)的共享資源時,可以設置這多個實時信息采集與運算命令均使用一個ICO線程,通過設置采集與運算命令的周期觸發(fā)時刻來達到互斥訪問共享資源的目的;步驟S104,接收用戶輸入的配置命令,將該配置命令緩存在配置分發(fā)緩存器(Config Distribution Buffer, CDB)中;其中,CDB的線程優(yōu)先級< ICO線程的優(yōu)先級; 步驟S106,在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。本實施例可以在系統(tǒng)設計階段,根據(jù)系統(tǒng)的關鍵模型分析及共享資源的分布情況確定系統(tǒng)中IPU的劃分及CP、IC0的組成,并劃分好各單元中CP和ICO的優(yōu)先級,避免通過使用信號量在相應共享資源前加鎖來限制訪問,相當于消除因共享資源訪問可能引起的故障源頭,還可以改良系統(tǒng)的架構設計,從而提高系統(tǒng)的可靠性、維護性和易用性。本實施例根據(jù)線程的優(yōu)先級訪問共享資源,規(guī)避多個線程共享資源時的訪問沖突,解決了因信號量加鎖的方式容易導致系統(tǒng)掛起的問題,增強了系統(tǒng)的穩(wěn)定性和可靠性。其中,上述步驟S106中的根據(jù)各個線程的優(yōu)先級訪問共享資源可以包括在該實時處理系統(tǒng)處于空閑狀態(tài)時,從⑶B中讀取配置命令;根據(jù)配置命令確定對應IPU的CP線程,將該配置命令發(fā)送給確定的CP線程;該CP線程根據(jù)該配置命令對共享資源進行處理。從⑶B中讀取配置命令時可以按照先進先出(First In First Out,FIFO)原則讀取。為了便于確定每個配置命令對應的CP線程,可以在⑶B中設置一個命令映射表,將命令集與CP的對應關系保存在該映射表中。基于此,上述根據(jù)配置命令確定對應IPU的CP線程包括根據(jù)配置命令查詢命令映射表,該命令映射表中保存有命令集與CP線程的對應關系;根據(jù)查詢的結構確定對應IPU的CP線程。上述將配置命令發(fā)送給確定的CP線程可以通過異步發(fā)送方式發(fā)送,該異步發(fā)送方式指發(fā)送完該配置命令后,該⑶B即可以執(zhí)行后面的操作。ICO線程是執(zhí)行實時信息采集與運算命令的,因此,其根據(jù)配置的時間周期決定是否運行?;诖?,上述根據(jù)各個線程的優(yōu)先級訪問共享資源還包括當ICO線程的運行時間到達時,運行該ICO線程訪問共享資源。為了避免IPU內(nèi)的線程在運行過程中出現(xiàn)掛起現(xiàn)象,保證共享資源的互斥機制,本實施例的IPU的線程運行過程中禁止調(diào)用操作系統(tǒng)的延時操作。為了實現(xiàn)簡單,在系統(tǒng)中劃分ITO時,可以盡量保證多個IPU之間的系統(tǒng)功能關聯(lián)性最小或者相互無關聯(lián),例如,使多個IPU的功能各自獨立,盡量保證著多個IPU之間無共享數(shù)據(jù)信息。如果兩個ITO之間需要傳輸數(shù)據(jù),說明這兩個ITO之間有共享數(shù)據(jù),該情況下,上述方法還包括發(fā)起數(shù)據(jù)傳輸?shù)腎PU向接收數(shù)據(jù)的ITO發(fā)送通告信息。為了保證系統(tǒng)的效率,該通告信息可以采用異步傳輸方式。進行通告時可以遵循下述原則如果兩個IPU之間需要傳輸數(shù)據(jù)(例如,兩個IPU之間需要共同的配置信息或者兩個ITO之間需要數(shù)據(jù)交互)時,為了避免出現(xiàn)共享資源的訪問沖突,上述方法還包括確定發(fā)起數(shù)據(jù)傳輸?shù)木€程是否為ICO線程,如果是,確定接收數(shù)據(jù)的線程是否為CP線程;如果是CP線程,則調(diào)整兩個IPU中的ICO線程的優(yōu)先級,使第一 ICO線程的優(yōu)先級小于第二 ICO線程的優(yōu)先級;其中,第一 ICO線程為發(fā)起數(shù)據(jù)傳輸?shù)腎PU中的ICO線程,第二 ICO線程為接收數(shù)據(jù)的IPU中的ICO線程。為了描述方便,上述CP線程有時也可以簡稱為CP,ICO線程也可以簡稱為ICO ;下面根據(jù)上述方法,簡單描述一下系統(tǒng)的設計與運行過程對于實時處理系統(tǒng),需要接收用戶的配置和查詢處理,同時還需要進行一些數(shù)據(jù)的實時采集和運算。如圖2所示的實時處理系統(tǒng)結構示意圖,在該系統(tǒng)中設置一個優(yōu)先級較低的線程,本實施例將該線程稱為配置分發(fā)緩存器,即上述CDB,該CDB負責接收輸入系統(tǒng)的相關命令,并分發(fā)給不同的獨立處理單元IPU進行處理。
將實時采集及運算的內(nèi)容與用戶配置命令集按是否需要共享數(shù)據(jù)進行分類歸整,分成若干IPU,IPU內(nèi)部的線程可以有直接的數(shù)據(jù)共享,IPU之間盡量保證不存在共享數(shù)據(jù)需要訪問。在IPU中,配置命令處理CP用高優(yōu)先級線程完成處理,即由CP負責接收處理外部對本IPU的配置;相關的信息采集和運算ICO由優(yōu)先級相對低一些的若干線程負責實時處理,即ICO執(zhí)行本IPU的實時處理(要求IPU內(nèi)的ICO之間無共享資源,IPU內(nèi)的ICO與CP可以共享資源)。參見圖3,本實施例的處理流程包括以下幾個步驟步驟S302,啟動系統(tǒng)中的線程,包括I)啟動優(yōu)先級為M(M值對應的優(yōu)先級較小)的線程作為CDB,負責緩存配置命令;2)啟動各IPU內(nèi)部的CP,其優(yōu)先級高于M,并將CP處理的命令集與CP的對應關系注冊到CDB中的命令映射表CmdMap中;3)啟動各IPU內(nèi)部的IC0,其線程優(yōu)先級要大于M且小于其IPU內(nèi)部的CP的優(yōu)先級;步驟S304,接收用戶向系統(tǒng)輸入的配置命令,將該配置命令緩存在⑶B中;步驟S306,ICO在信息采集和運算時,對共享資源進行信息采集和運算;ICO在信息采集和運算時,因ICO的優(yōu)先級高于⑶B的優(yōu)先級,⑶B得不到調(diào)度,配置命令將在⑶B中緩存,故對應的CP不會得到執(zhí)行,ICO可以安全地訪問共享資源。步驟S308,當系統(tǒng)空閑時,判斷⑶B緩存的配置命令列表是否為空,如果是,則返回步驟S304 ;否則,執(zhí)行步驟S310 ;步驟S310,⑶B按FIFO原則彈出緩存的配置命令,查詢命令映射表CmdMap,確定對應IPU的CP,將命令異步發(fā)送到該CP處理;步驟S312,CP根據(jù)命令配置完成對共享資源的處理,返回步驟S310繼續(xù)處理緩存的其他配置命令。該系統(tǒng)中不同的ITO之間,由于其無數(shù)據(jù)共享問題,故不需要考慮其線程間優(yōu)先級關系設置。如果各IPU之間需要共同的配置信息或者IPU之間需要數(shù)據(jù)交互時,可通過在IPU之間以異步方式進行信息通告,這時需要考慮不同場景下的限制條件,當通告信息由CP發(fā)起時,接收通告的IPU中的線程優(yōu)先級不需要附加新的限制條件,通告信息由CP發(fā)起時的消息發(fā)送示意圖如圖4所示這里稱發(fā)送IPU的CP為CP1,接收IPU的CP和ICO分別為CP2、IC02。因CDB的作用,CPl和CP2的調(diào)度關系是互斥的,故只需要考慮CPl與IC02的優(yōu)先級關系。線程優(yōu)先級關系為CPl > IC02,CPl執(zhí)行不會被IC02打斷,故沒有問題;線程優(yōu)先級關系為CPl <= IC02, IC02可能會打斷CPl的執(zhí)行,但CPl只在IC02空閑時才有機會將信息通告給CP2或IC02,故CP2和IC02之間對共享資源的訪問沒有問題;當通告信息需要由ITO的ICO發(fā)起時,即通告信息是實時運算的數(shù)據(jù),通告信息由ICO發(fā)起時的消息發(fā)送示意圖如圖5所示這里稱發(fā)送IPU的ICO為ICOl,接收IPU的CP和ICO分別為CP2、IC02。只有當 ICOl的線程優(yōu)先級大于IC02時,ICOl會打斷IC02,這時如果通告發(fā)給CP2,CP2的執(zhí)行將可能引起共享資源訪問的沖突。因此,當IPU需要由ICO發(fā)送通告信息給接收IPU的CP時,可以設置發(fā)送端ICO的線程優(yōu)先級小于接收端ICO的線程優(yōu)先級。而如果通告信息由接收IPU的ICO處理時,則沒有問題。同時可以看出,當接收端將ICO和CP合二而一時,則不受此處描述的條件限制。下面以實際通信系統(tǒng)中某單板嵌入式軟件系統(tǒng)為例,該系統(tǒng)框圖如圖6所示,主控單元通過某通訊協(xié)議配置相關信息到此單板系統(tǒng)執(zhí)行,該單板實時檢測處理告警性能數(shù)據(jù),并上報主控單元,同時單板系統(tǒng)還有業(yè)務協(xié)議相關的實時處理。假設本系統(tǒng)線程優(yōu)先級的等級是值越大優(yōu)先級越高。共享資源訪問方法包括以下步驟第一步啟動單板系統(tǒng)的線程,包括啟動⑶B線程,優(yōu)先級為2;啟動告警性能單元AlmPerfIPU的線程AlmPerfCP和AlmPerfICO,其線程的優(yōu)先級分別為5、3,將告警性能命令集與AlmPerfCP的對應關系注冊到CDB中的命令映射表CmdMap 中;啟動業(yè)務單元ServiceIPU相關的線程ServiceCP和ServiceICO,其優(yōu)先級分別為8、6,將處理的告警性能命令集與ServiceCP的對應關系注冊到⑶B中的命令映射表CmdMap中;第二步用戶向系統(tǒng)輸入業(yè)務配置和告警性能配置命令,該命令在⑶B中緩存;第三步當ServiceICO或AlmPerfICO執(zhí)行時,跳轉(zhuǎn)第六步;當系統(tǒng)空閑時,CDB按FIFO (First In First Out)原則先將業(yè)務配置命令彈出,查詢命令映射表CmdMap,將該命令異步發(fā)送到ServiceCP處理;第四步=ServiceCP完成業(yè)務配置處理,然后向AlmPerfIPU的AlmPerfCP異步通告相關的業(yè)務增刪信息;第五步=AlmPerfCP根據(jù)通告的業(yè)務增刪信息,完成與增刪業(yè)務對應的告警性能節(jié)點的處理;第六步⑶B彈出告警性能配置命令,將其異步發(fā)送到AlmPerfCP處理;
第七步AlmPerfCP根據(jù)告警性能配置命令進行處理;第八步=ServiceICO周期查詢業(yè)務實時信息,執(zhí)行業(yè)務協(xié)議的處理,假設業(yè)務有保護倒換發(fā)生,這時異步通告倒換動作給AlmPerflCO,AlmPerfICO完成告警性能檢測的切換;第九步當AlmPerfICO周期定時到,查詢告警性能信息,執(zhí)行告警性能的上報。第十步返回第二步,繼續(xù)接收用戶配置命令處理。本實施例在系統(tǒng)設計階段,根據(jù)系統(tǒng)的關鍵模型分析及共享資源的分布情況就確定好系統(tǒng)中IPU的劃分及CP、ICO的組成,并劃分好各單元的優(yōu)先級,避免再使用信號量在相應共享資源前加鎖來進行訪問限制,相當于消除因共享資源訪問可能引起的故障源頭,還可以改良系統(tǒng)的架構設計,從而提高系統(tǒng)的可靠性、維護性和易用性。實施例2 本實施例提供了一種實時處理系統(tǒng),參見圖7,該系統(tǒng)包括以下模塊線程啟動模塊72,用于啟動實時處理系統(tǒng)的線程;其中,實時處理系統(tǒng)包括多個IPU,每個IPU包括CP線程和ICO線程,IPU內(nèi)的線程的優(yōu)先級關系為CP線程的優(yōu)先級>ICO線程的優(yōu)先級;配置命令緩存模塊74,與線程啟動模塊72相連,用于接收用戶輸入的配置命令,將配置命令緩存在CDB中;其中,CDB的線程優(yōu)先級< ICO線程的優(yōu)先級;資源訪問模塊76,與配置命令緩存模塊74相連,用于在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。本實施例根據(jù)線程的優(yōu)先級訪問共享資源,規(guī)避多個線程共享資源時的訪問沖突,解決了因信號量加鎖的方式容易導致系統(tǒng)掛起的問題,增強了系統(tǒng)的穩(wěn)定性和可靠性。參見圖8,資源訪問模塊76包括配置命令讀取單元762,用于在實時處理系統(tǒng)處于空閑狀態(tài)時,從⑶B中讀取配置命令;配置命令發(fā)送單元764,與配置命令讀取單元762相連,用于根據(jù)上述配置命令確定對應IPU的CP線程,將配置命令發(fā)送給確定的CP線程;處理單元766,與配置命令發(fā)送單元764相連,用于通過CP線程根據(jù)配置命令對共享資源進行處理。其中,配置命令讀取單元762從⑶B中讀取配置命令時可以按照FIFO原則讀取。為了便于確定每個配置命令對應的CP線程,可以在⑶B中設置一個命令映射表,將命令集與CP的對應關系保存在該映射表中?;诖耍鲜雠渲妹畎l(fā)送單元764根據(jù)配置命令確定對應IPU的CP線程包括根據(jù)配置命令查詢命令映射表,該命令映射表中保存有命令集與CP線程的對應關系;根據(jù)查詢的結構確定對應IPU的CP線程。上述配置命令發(fā)送單元764將配置命令發(fā)送給確定的CP線程可以通過異步發(fā)送方式發(fā)送,該異步發(fā)送方式指發(fā)送完該配置命令后,該⑶B即可以執(zhí)行后面的操作。上述ICO線程是執(zhí)行實時信息采集與運算命令的,因此,其根據(jù)配置的時間周期決定是否運行?;诖耍鲜鲑Y源訪問模塊76還包括IC0線程訪問單元,用于當ICO線程的運行時間到達時,運行該ICO線程訪問共享資源。為了避免IPU內(nèi)的線程在運行過程中出現(xiàn)掛起現(xiàn)象,保證共享資源的互斥機制,本實施例的IPU的線程運行過程中禁止調(diào)用操作系統(tǒng)的延時操作。為了實現(xiàn)簡單,在系統(tǒng)中劃分ITO時,可以盡量保證多個IPU之間的系統(tǒng)功能關聯(lián)性最小或者相互無關聯(lián),例如,使多個IPU的功能獨立,保證這多個IPU之間無共享數(shù)據(jù)。如果兩個IPU之間需要傳輸數(shù)據(jù)(例如,兩個IPU之間需要共同的配置信息或者兩個IPU之間需要數(shù)據(jù)交互),則發(fā)起數(shù)據(jù)傳輸?shù)腎PU向接收數(shù)據(jù)的ITO發(fā)送通告信息。為了避免出現(xiàn)共享資源的訪問沖突,上述系統(tǒng)還包括第一確定模塊,用于確定發(fā)起數(shù)據(jù)傳輸?shù)木€程是否為ICO線程;第二確定模塊,用于第一確定模塊的確定結果為是時,確定接收數(shù)據(jù)的線程是否為CP線程;優(yōu)先級調(diào)整模塊,用于第二確定模塊的確定結果為CP線程時,調(diào)整兩個IPU中的ICO線程的優(yōu)先級,使第一 ICO線程的優(yōu)先級小于第二 ICO線程的優(yōu)先級;其中,第一 ICO線程為發(fā)起數(shù)據(jù)傳輸?shù)腎PU中的ICO線程,第二 ICO線程為接收數(shù)據(jù)的IPU中的ICO線程。本實施例根據(jù)線程的優(yōu)先級訪問共享資源,規(guī)避多個線程共享資源時的訪問沖 突,解決了因信號量加鎖的方式容易導致系統(tǒng)掛起的問題,增強了系統(tǒng)的穩(wěn)定性和可靠性。從以上的描述中可以看出,以上實施例可以在系統(tǒng)設計階段,根據(jù)系統(tǒng)的關鍵模型分析及共享資源的分布情況確定系統(tǒng)中IPU的劃分及CP、IC0的組成,并劃分好各單元中CP和ICO的優(yōu)先級,避免通過使用信號量在相應共享資源前加鎖來限制訪問,相當于消除因共享資源訪問可能引起的故障源頭,還可以改良系統(tǒng)的架構設計,從而提高系統(tǒng)的可靠性、維護性和易用性。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種實時處理系統(tǒng)中的共享資源訪問方法,其特征在于,包括 啟動實時處理系統(tǒng)的線程;其中,所述實時處理系統(tǒng)包括多個獨立處理單元IPU,每個IPU包括配置命令處理CP線程和實時信息采集與運算ICO線程,所述IPU內(nèi)的線程的優(yōu)先級關系為所述CP線程的優(yōu)先級>所述ICO線程的優(yōu)先級; 接收用戶輸入的配置命令,將所述配置命令緩存在配置分發(fā)緩存器CDB中;其中,所述CDB的線程優(yōu)先級<所述ICO線程的優(yōu)先級; 在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。
2.根據(jù)權利要求I所述的方法,其特征在于,所述根據(jù)各個線程的優(yōu)先級訪問共享資源包括 在所述實時處理系統(tǒng)處于空閑狀態(tài)時,從所述CDB中讀取所述配置命令; 根據(jù)所述配置命令確定對應IPU的CP線程,將所述配置命令發(fā)送給確定的所述CP線程; 所述CP線程根據(jù)配置命令對共享資源進行處理。
3.根據(jù)權利要求2所述的方法,其特征在于,從所述CDB中讀取所述配置命令時按照先進先出FIFO原則讀取。
4.根據(jù)權利要求2所述的方法,其特征在于,所述根據(jù)所述配置命令確定對應IPU的CP線程包括 根據(jù)所述配置命令查詢命令映射表,所述命令映射表中保存有命令集與CP線程的對應關系; 根據(jù)查詢的結構確定對應IPU的CP線程。
5.根據(jù)權利要求2所述的方法,其特征在于,將所述配置命令發(fā)送給確定的所述CP線程是通過異步發(fā)送方式發(fā)送的。
6.根據(jù)權利要求I所述的方法,其特征在于,所述根據(jù)各個線程的優(yōu)先級訪問共享資源包括 當所述ICO線程的運行時間到達時,運行所述ICO線程訪問共享資源。
7.根據(jù)權利要求1-6任一項所述的方法,其特征在于,所述IPU的線程運行過程中禁止調(diào)用操作系統(tǒng)的延時操作。
8.根據(jù)權利要求1-6任一項所述的方法,其特征在于,所述多個IPU的功能獨立。
9.根據(jù)權利要求I所述的方法,其特征在于,如果兩個IPU之間需要傳輸數(shù)據(jù),所述方法還包括 發(fā)起數(shù)據(jù)傳輸?shù)腎PU向接收數(shù)據(jù)的IPU發(fā)送通告信息。
10.根據(jù)權利要求9所述的方法,其特征在于,所述發(fā)起數(shù)據(jù)傳輸?shù)腎PU向接收數(shù)據(jù)的IPU發(fā)送通告信息包括 確定發(fā)起數(shù)據(jù)傳輸?shù)木€程是否為ICO線程,如果是,確定接收所述數(shù)據(jù)的線程是否為CP線程; 如果是CP線程,則調(diào)整所述兩個IPU中的ICO線程的優(yōu)先級,使第一 ICO線程的優(yōu)先級小于第二 ICO線程的優(yōu)先級;其中,所述第一 ICO線程為發(fā)起數(shù)據(jù)傳輸?shù)腎PU中的ICO線程,所述第二 ICO線程為接收數(shù)據(jù)的IPU中的ICO線程。
11.一種實時處理系統(tǒng),其特征在于,包括線程啟動模塊,用于啟動實時處理系統(tǒng)的線程;其中,所述實時處理系統(tǒng)包括多個獨立處理單元IPU,每個IPU包括配置命令處理CP線程和實時信息采集與運算ICO線程,所述IPU內(nèi)的線程的優(yōu)先級關系為所述CP線程的優(yōu)先級>所述ICO線程的優(yōu)先級; 配置命令緩存模塊,用于接收用戶輸入的配置命令,將所述配置命令緩存在配置分發(fā)緩存器CDB中;其中,所述CDB的線程優(yōu)先級<所述ICO線程的優(yōu)先級; 資源訪問模塊,用于在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。
12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述資源訪問模塊包括 配置命令讀取單元,用于在所述實時處理系統(tǒng)處于空閑狀態(tài)時,從所述CDB中讀取所述配置命令; 配置命令發(fā)送單元,用于根據(jù)所述配置命令確定對應IPU的CP線程,將所述配置命令發(fā)送給確定的所述CP線程; 處理單元,用于通過所述CP線程根據(jù)配置命令對共享資源進行處理。
全文摘要
本發(fā)明公開了一種實時處理系統(tǒng)中的共享資源訪問方法和實時處理系統(tǒng)。其中,該方法包括啟動實時處理系統(tǒng)的線程;其中,該實時處理系統(tǒng)包括多個IPU,每個IPU包括CP線程和ICO線程,IPU內(nèi)的線程的優(yōu)先級關系為CP線程的優(yōu)先級>ICO線程的優(yōu)先級;接收用戶輸入的配置命令,將配置命令緩存在CDB中;其中,CDB的線程優(yōu)先級<ICO線程的優(yōu)先級;在每一個IPU內(nèi),根據(jù)各個線程的優(yōu)先級訪問共享資源。通過本發(fā)明,解決了因信號量加鎖的方式容易導致系統(tǒng)掛起的問題,增強了系統(tǒng)的穩(wěn)定性和可靠性。
文檔編號G06F9/48GK102831007SQ20111015927
公開日2012年12月19日 申請日期2011年6月14日 優(yōu)先權日2011年6月14日
發(fā)明者吳青 申請人:中興通訊股份有限公司