System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及并行計算,尤其涉及一種電力自動化系統主備機狀態數據快速訪問處理方法、系統、設備及存儲介質。
技術介紹
1、目前電力自動化系統由多臺服務器構成,每臺服務器上運行了多個電力應用,為了提高可靠性,應用均部署了一個主實例和多個備實例,且分布在不同的服務器上,每個應用實例的主備狀態也可以實時改變。應用程序一般會查詢本服務器是否是某個應用的主機,如果是主機則進行一系列的計算和處理,如果是備機則一般會空轉節省資源。因此會有大量的讀者從共享內存訪問應用主備機狀態信息,同時管理主備機的程序會在接收到切換指令,或者發現其他主機斷網故障等異常情況時實時的改變主備機狀態,需要將主備機狀態數據寫入共享內存。在寫者寫入主備機狀態數據時,上層應用的讀者不能讀取,否側會讀到不完整的中間數據。因此在讀者和寫者之間需要有互斥手段保障數據的快速讀取和正確寫入。
2、當前的計算機業界程序開發普遍使用的進程間互斥方式就是linux操作系統提供的信號量(semaphore),信號量支持多進程與多線程間的互斥,互斥操作本身占用資源少,執行效率較高,但缺點是不能區分讀者和寫者,即不能提供讀者并發、寫者互斥的功能,只能對每一次信號量訪問都進行互斥等待,臨界區只允許一個進程或線程進入。這樣的機制會降低大型分布式系統的效率,一般的應用系統讀操作都遠多于寫操作,使用信號量會造成所有的讀操作之間也只能互相等待。
技術實現思路
1、專利技術目的:本專利技術的目的是提供了一種電力自動化系統主備機狀態數據快速訪問處理方
2、技術方案:本專利技術所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,包括以下步驟:根據主備機狀態數據存儲情況設定讀寫主備機狀態數據的規則;根據讀寫主備機狀態數據的規則分別通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力、通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力、通過寫者隊列構建寫者優先,避免寫者餓死的能力、通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力;根據構建的4種能力實現數據快速訪問處理。
3、進一步的,設定讀寫主備機狀態數據的規則如下:寫者在進入臨界區寫入主備機狀態數據時,讀者不允許讀取數據,其他寫者不允許寫入數據;讀者在進入臨界區讀取主備機狀態數據時,則其他讀者可以同時讀取;當讀者進入臨界區或者離開時將讀者隊列數值加1或者減1,當寫者進入臨界區時首先將寫者隊列數值加1,然后爭搶寫鎖;寫者離開臨界區時首先釋放寫鎖,然后將寫者隊列數值減1。
4、進一步的,讀/寫者隊列數值加減1的操作和爭搶/釋放寫鎖的操作基于信號量的數值加減操作實現。
5、進一步的,通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力具體如下:當讀者在進入臨界區讀取主備機狀態數據前,首先查看寫者隊列是否為空,如果不為空則等待,等待寫者完成寫入;如果為空,則將讀者隊列加1并讀取;若有其他讀者同時進入臨界區讀取主備機數據,則讀者隊列繼續加1,讀者完成讀取時將讀者隊列減1。z
6、進一步的,通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力,具體如下:當寫者讀取主備機狀態數據前,首先將寫者隊列加1,然后爭搶寫鎖,如果成功,則查詢讀者隊列是否為空,如果不為空則等待,直至為空后開始寫入主備機狀態數據;如果寫鎖爭搶失敗則等待其他寫者完成寫入并釋放寫鎖后繼續爭搶寫鎖;寫者完成寫入時首先釋放寫鎖,然后將寫者隊列減1。
7、進一步的,通過寫者隊列構建寫者優先,避免寫者餓死的能力具體如下:當讀者隊列不為空時,有寫者嘗試寫入主備機狀態數據,則將寫者隊列加1后再爭搶寫鎖,通過寫者隊列不為空阻止其他新的讀者讀取主備機狀態數據,同時只需要等待讀者隊列中有限的讀者完成讀取,避免了寫者餓死的情況。
8、進一步的,通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力具體如下:當有讀者正在讀取主備機狀態數據,同時有寫者嘗試寫入主備機狀態數據,則此寫者首先因為讀者隊列不為空而等待,在等待讀者隊列變空的過程中,寫者會持有寫鎖,阻止其他寫者寫入主備機狀態數據。
9、本專利技術所述的一種電力自動化系統主備機狀態數據快速訪問處理系統,包括以下:
10、讀寫規則模塊:用于根據主備機狀態數據存儲情況設定讀寫主備機狀態數據的規則;
11、4種能力模塊:用于根據讀寫主備機狀態數據的規則分別通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力、通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力、通過寫者隊列構建寫者優先,避免寫者餓死的能力、通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力;
12、訪問模塊:用于根據構建的4種能力實現數據快速訪問處理。
13、進一步的,讀寫規則模塊中,設定讀寫主備機狀態數據的規則如下:寫者在進入臨界區寫入主備機狀態數據時,讀者不允許讀取數據,其他寫者不允許寫入數據;讀者在進入臨界區讀取主備機狀態數據時,則其他讀者可以同時讀取;當讀者進入臨界區或者離開時將讀者隊列數值加1或者減1,當寫者進入臨界區時首先將寫者隊列數值加1,然后爭搶寫鎖;寫者離開臨界區時首先釋放寫鎖,然后將寫者隊列數值減1。
14、進一步的,讀寫規則模塊中,讀/寫者隊列數值加減1的操作和爭搶/釋放寫鎖的操作基于信號量的數值加減操作實現。
15、進一步的,4種能力模塊中,通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力具體如下:當讀者在進入臨界區讀取主備機狀態數據前,首先查看寫者隊列是否為空,如果不為空則等待,等待寫者完成寫入;如果為空,則將讀者隊列加1并讀取;若有其他讀者同時進入臨界區讀取主備機數據,則讀者隊列繼續加1,讀者完成讀取時將讀者隊列減1。
16、進一步的,4種能力模塊中,通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力,具體如下:當寫者讀取主備機狀態數據前,首先將寫者隊列加1,然后爭搶寫鎖,如果成功,則查詢讀者隊列是否為空,如果不為空則等待,直至為空后開始寫入主備機狀態數據;如果寫鎖爭搶失敗則等待其他寫者完成寫入并釋放寫鎖后繼續爭搶寫鎖;寫者完成寫入時首先釋放寫鎖,然后將寫者隊列減1。
17、進一步的,4種能力模塊中,通過寫者隊列構建寫者優先,避免寫者餓死的能力具體如下:當讀者隊列不為空時,有寫者嘗試寫入主備機狀態數據,則將寫者隊列加1后再爭搶寫鎖,通過寫者隊列不為空阻止其他新的讀者讀取主備機狀態數據,同時只需要等待讀者隊列中有限的讀者完成讀取,避免了寫者餓死的情況。
18、進一步的,4種能力模塊中,通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力具體如下:當有讀者正在讀取主備機狀態數據,同時有寫者嘗試寫入主備機狀態數據,則此寫者首先因為讀者隊列不為空而等待,在等待讀者隊列變空的過程中,寫者會持有寫鎖,阻止其他寫者寫入主備機狀態數據。
19、本文檔來自技高網...
【技術保護點】
1.一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,包括以下步驟:根據主備機狀態數據存儲情況設定讀寫主備機狀態數據的規則;根據讀寫主備機狀態數據的規則分別通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力、通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力、通過寫者隊列構建寫者優先,避免寫者餓死的能力、通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力;根據構建的4種能力實現數據快速訪問處理。
2.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,設定讀寫主備機狀態數據的規則如下:寫者在進入臨界區寫入主備機狀態數據時,讀者不允許讀取數據,其他寫者不允許寫入數據;讀者在進入臨界區讀取主備機狀態數據時,則其他讀者可以同時讀取;當讀者進入臨界區或者離開時將讀者隊列數值加1或者減1,當寫者進入臨界區時首先將寫者隊列數值加1,然后爭搶寫鎖;寫者離開臨界區時首先釋放寫鎖,然后將寫者隊列數值減1。
3.根據權利要求2所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,讀/寫者隊列數值加
4.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力具體如下:當讀者在進入臨界區讀取主備機狀態數據前,首先查看寫者隊列是否為空,如果不為空則等待,等待寫者完成寫入;如果為空,則將讀者隊列加1并讀取;若有其他讀者同時進入臨界區讀取主備機數據,則讀者隊列繼續加1,讀者完成讀取時將讀者隊列減1。
5.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力,具體如下:當寫者讀取主備機狀態數據前,首先將寫者隊列加1,然后爭搶寫鎖,如果成功,則查詢讀者隊列是否為空,如果不為空則等待,直至為空后開始寫入主備機狀態數據;如果寫鎖爭搶失敗則等待其他寫者完成寫入并釋放寫鎖后繼續爭搶寫鎖;寫者完成寫入時首先釋放寫鎖,然后將寫者隊列減1。
6.根據權利1所要求的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫者隊列構建寫者優先,避免寫者餓死的能力具體如下:當讀者隊列不為空時,有寫者嘗試寫入主備機狀態數據,則將寫者隊列加1后再爭搶寫鎖,通過寫者隊列不為空阻止其他新的讀者讀取主備機狀態數據,同時只需要等待讀者隊列中有限的讀者完成讀取,避免了寫者餓死的情況。
7.根據權利1所要求的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力具體如下:當有讀者正在讀取主備機狀態數據,同時有寫者嘗試寫入主備機狀態數據,則此寫者首先因為讀者隊列不為空而等待,在等待讀者隊列變空的過程中,寫者會持有寫鎖,阻止其他寫者寫入主備機狀態數據。
8.一種電力自動化系統主備機狀態數據快速訪問處理系統,其特征在于,包括以下:
9.根據權利要求8所述的一種電力自動化系統主備機狀態數據快速訪問處理系統,其特征在于,讀寫規則模塊中,設定讀寫主備機狀態數據的規則如下:寫者在進入臨界區寫入主備機狀態數據時,讀者不允許讀取數據,其他寫者不允許寫入數據;讀者在進入臨界區讀取主備機狀態數據時,則其他讀者可以同時讀取;當讀者進入臨界區或者離開時將讀者隊列數值加1或者減1,當寫者進入臨界區時首先將寫者隊列數值加1,然后爭搶寫鎖;寫者離開臨界區時首先釋放寫鎖,然后將寫者隊列數值減1。
10.根據權利要求9所述的一種電力自動化系統主備機狀態數據快速訪問處理系統,其特征在于,讀寫規則模塊中,讀/寫者隊列數值加減1的操作和爭搶/釋放寫鎖的操作基于信號量的數值加減操作實現。
11.根據權利要求8所述的一種電力自動化系統主備機狀態數據快速訪問處理系統,其特征在于,4種能力模塊中,通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力具體如下:當讀者在進入臨界區讀取主備機狀態數據前,首先查看寫者隊列是否為空,如果不為空則等待,等待寫者完成寫入;如果為空,則將讀者隊列加1并讀取;若有其他讀者同時進入臨界區讀取主備機數據,則讀者隊列繼續加1,讀者完成讀取時將讀者隊列減1。
12.根據權利要求8所述的一種電力自動化系統主備機狀態數據快速訪問處理系統,其特征在于,4種能力模塊中,通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力,具體如下:當寫者讀取主備機狀態數據前,首先將寫者隊列加1,然后爭搶寫鎖,如果...
【技術特征摘要】
1.一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,包括以下步驟:根據主備機狀態數據存儲情況設定讀寫主備機狀態數據的規則;根據讀寫主備機狀態數據的規則分別通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力、通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力、通過寫者隊列構建寫者優先,避免寫者餓死的能力、通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力;根據構建的4種能力實現數據快速訪問處理。
2.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,設定讀寫主備機狀態數據的規則如下:寫者在進入臨界區寫入主備機狀態數據時,讀者不允許讀取數據,其他寫者不允許寫入數據;讀者在進入臨界區讀取主備機狀態數據時,則其他讀者可以同時讀取;當讀者進入臨界區或者離開時將讀者隊列數值加1或者減1,當寫者進入臨界區時首先將寫者隊列數值加1,然后爭搶寫鎖;寫者離開臨界區時首先釋放寫鎖,然后將寫者隊列數值減1。
3.根據權利要求2所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,讀/寫者隊列數值加減1的操作和爭搶/釋放寫鎖的操作基于信號量的數值加減操作實現。
4.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫者隊列構建讀者并發、讀者與寫者之間互斥訪問主備機狀態數據的能力具體如下:當讀者在進入臨界區讀取主備機狀態數據前,首先查看寫者隊列是否為空,如果不為空則等待,等待寫者完成寫入;如果為空,則將讀者隊列加1并讀取;若有其他讀者同時進入臨界區讀取主備機數據,則讀者隊列繼續加1,讀者完成讀取時將讀者隊列減1。
5.根據權利要求1所述的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫鎖構建寫者之間互斥寫入主備機狀態數據的能力,具體如下:當寫者讀取主備機狀態數據前,首先將寫者隊列加1,然后爭搶寫鎖,如果成功,則查詢讀者隊列是否為空,如果不為空則等待,直至為空后開始寫入主備機狀態數據;如果寫鎖爭搶失敗則等待其他寫者完成寫入并釋放寫鎖后繼續爭搶寫鎖;寫者完成寫入時首先釋放寫鎖,然后將寫者隊列減1。
6.根據權利1所要求的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過寫者隊列構建寫者優先,避免寫者餓死的能力具體如下:當讀者隊列不為空時,有寫者嘗試寫入主備機狀態數據,則將寫者隊列加1后再爭搶寫鎖,通過寫者隊列不為空阻止其他新的讀者讀取主備機狀態數據,同時只需要等待讀者隊列中有限的讀者完成讀取,避免了寫者餓死的情況。
7.根據權利1所要求的一種電力自動化系統主備機狀態數據快速訪問處理方法,其特征在于,通過讀者隊列構建寫者與讀者之間互斥訪問主備機狀態數據的能力具體如下:當有讀者正在讀取主備機狀態數據,同時有寫者嘗試寫入主備機狀態數據,則此寫者首先因為讀者隊列不為空而等待,在等待讀者隊列變空的過程中,寫者會持有寫鎖,阻止其他寫者寫入主備機狀態數據。
8.一種電力自動化系統主備機狀態數據快速訪問處理系統,其特...
【專利技術屬性】
技術研發人員:高原,陳泊宇,嚴亞勤,陳斌,張偉,李澤科,晉宏楊,王秋楠,呂顧鈞,范海威,顧文杰,翟明玉,孫云楓,季學純,彭暉,陳鵬,王紀立,顧雯軒,
申請(專利權)人:國電南瑞科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。