[發(fā)明專利]一種基于軟件事務(wù)內(nèi)存的并發(fā)缺陷規(guī)避系統(tǒng)及方法有效
| 申請?zhí)枺?/td> | 201611218952.6 | 申請日: | 2016-12-26 |
| 公開(公告)號: | CN106874074B | 公開(公告)日: | 2020-05-05 |
| 發(fā)明(設(shè)計)人: | 禹振;蘇小紅;王甜甜;趙玲玲 | 申請(專利權(quán))人: | 哈爾濱工業(yè)大學(xué) |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F11/14 |
| 代理公司: | 哈爾濱龍科專利代理有限公司 23206 | 代理人: | 高媛 |
| 地址: | 150000 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 軟件 事務(wù) 內(nèi)存 并發(fā) 缺陷 規(guī)避 系統(tǒng) 方法 | ||
本發(fā)明公開了一種基于軟件事務(wù)內(nèi)存的并發(fā)缺陷規(guī)避系統(tǒng)及方法,所述系統(tǒng)由事務(wù)自動劃分模塊、可回滾內(nèi)存模塊、可回滾I/O模塊、條件變量處理模塊和加鎖解鎖處理模塊5個模塊構(gòu)成,所述方法為:一、實現(xiàn)對目標程序的自動事務(wù)劃分;二、實現(xiàn)內(nèi)存事務(wù)化;三、實現(xiàn)執(zhí)行流的可回滾化;四、實現(xiàn)I/O事務(wù)化;五、實現(xiàn)對死鎖、數(shù)據(jù)競爭、原子性違背和順序違背的有效規(guī)避。本發(fā)明能夠自動事務(wù)化C/C++多線程程序、合理處理條件變量、支持普通文件和字符文件在系統(tǒng)層面、C語言層面和C++語言層面的事務(wù)化I/O和消除包括死鎖、數(shù)據(jù)競爭、原子性違背和順序違背在內(nèi)的多種并發(fā)缺陷。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件工程和并行計算技術(shù)領(lǐng)域,涉及一種新的基于軟件事務(wù)內(nèi)存的并發(fā)缺陷規(guī)避系統(tǒng)及方法。
背景技術(shù)
軟件事務(wù)內(nèi)存(Software Transactional Memory, STM)是一種并發(fā)控制機制。借助于這種機制,程序員可以對程序源碼進行事務(wù)劃分并保證作為事務(wù)的代碼段的原子性和隔離性執(zhí)行:一個事務(wù)要么成功執(zhí)行,要么與其他事務(wù)存在沖突而撤銷自身對共享內(nèi)存的所有更改、回滾到事務(wù)開始點并重新執(zhí)行。軟件事務(wù)內(nèi)存用事務(wù)代替鎖,通過簡化數(shù)據(jù)保護、允許事務(wù)順序推理、消除死鎖風(fēng)險和支持事務(wù)可組合性,可大幅降低并發(fā)程序的設(shè)計難度;通過樂觀執(zhí)行,可提升并發(fā)程序的并發(fā)度與執(zhí)行效率。盡管軟件事務(wù)內(nèi)存有望提高并發(fā)程序的并發(fā)度并消除并發(fā)缺陷,但目前在實際并發(fā)程序中并沒有得到廣泛應(yīng)用,因為它仍然存在以下3個缺點:
(1)對遺產(chǎn)代碼兼容性低,將現(xiàn)有基于鎖機制的并發(fā)程序改造為基于軟件事務(wù)內(nèi)存的并發(fā)程序需要修改大量代碼;
(2)不支持在事務(wù)中使用I/O操作和系統(tǒng)調(diào)用,影響較大的開源STM庫和商業(yè)STM庫一般都禁止在事務(wù)中調(diào)用I/O函數(shù)和系統(tǒng)函數(shù);
(3)不能合理處理條件變量操作,一般STM庫都禁止在事務(wù)中調(diào)用條件變量函數(shù)。
由于缺點(2)和(3),現(xiàn)有軟件事務(wù)內(nèi)存方法不能正確規(guī)避絕大部分涉及到I/O操作、系統(tǒng)調(diào)用和條件變量操作的并發(fā)缺陷,這嚴重影響了人們對軟件事務(wù)內(nèi)存的接納程度和使用意愿。
發(fā)明內(nèi)容
為了解決傳統(tǒng)軟件事務(wù)內(nèi)存機制人工參與度高和并發(fā)缺陷規(guī)避能力弱的問題,本發(fā)明提出了一種新的基于軟件事務(wù)內(nèi)存的并發(fā)缺陷規(guī)避系統(tǒng)及方法。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
一種基于軟件事務(wù)內(nèi)存的并發(fā)缺陷規(guī)避系統(tǒng),由5個模塊構(gòu)成:事務(wù)自動劃分模塊(Transaction Partition Module, TPM)、可回滾內(nèi)存模塊(Revocable Memory Module,RMM)、可回滾I/O模塊(Revocable I/O Module, RIOM)、條件變量處理模塊(ConditionVariable Handling Module, CVHM)和加鎖解鎖處理模塊(Lock/Unlock HandlingModule, LUHM),其中:
所述事務(wù)自動劃分模塊用于劫持線程間操作,利用它們動態(tài)地對目標程序進行自動事務(wù)劃分,并調(diào)用可回滾執(zhí)行模塊(Revocable Execution Module, REM)和事務(wù)執(zhí)行模塊(Transaction Execution Module, TEM)來對事務(wù)進行管理;
所述事務(wù)執(zhí)行模塊用于執(zhí)行在啟動、提交和撤銷事務(wù)時需要執(zhí)行的邏輯;
所述可回滾執(zhí)行模塊用于在事務(wù)啟動/撤銷時保存/恢復(fù)事務(wù)所在線程的棧幀和CPU寄存器;
所述可回滾內(nèi)存模塊用于劫持所有內(nèi)存訪問操作,并綜合利用進程繼承機制、內(nèi)存映射機制、進程層面的內(nèi)存保護機制和信號處理機制來使得這些操作具有可回滾化的執(zhí)行效應(yīng);
所述可回滾I/O模塊用于劫持所有常用的操作系統(tǒng)級別和C語言級別的I/O操作,并利用虛擬文件系統(tǒng)和文件流到文件描述符映射使得這些操作具有可回滾化的執(zhí)行效應(yīng);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于哈爾濱工業(yè)大學(xué),未經(jīng)哈爾濱工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611218952.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種紡織用斷紗檢測裝置
- 下一篇:一種基于纖維在紗條中排列的羅拉牽伸模擬方法
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護方法及系統(tǒng)
- 一種用于航空機載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗證裝置、軟件驗證方法以及軟件驗證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗軟件的裝置與方法
- 一種事務(wù)處理的方法和裝置
- 分布式事務(wù)處理方法與系統(tǒng)
- 一種融合原生事務(wù)和邏輯事務(wù)的方法
- 用于聚結(jié)內(nèi)存事務(wù)的方法和系統(tǒng)
- 事務(wù)處理方法、事務(wù)參與節(jié)點及事務(wù)協(xié)調(diào)節(jié)點
- 跨進程分布式事務(wù)控制方法及相關(guān)系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 一種分布式事務(wù)處理的智能監(jiān)控方法及服務(wù)器
- 分布式事務(wù)處理方法及裝置
- 讀寫事務(wù)控制方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì)





