事務存儲結構的實現(xiàn)
但在執(zhí)行沖突檢測的過程中也會存在錯誤的沖突,比如:當處理機Q請求訪問一個數(shù)據(jù)塊,該數(shù)據(jù)塊在目錄中的狀態(tài)為M@P,而處理機P已經(jīng)執(zhí)行到后續(xù)事務,同時也置了溢出位。P發(fā)送沖突信號給Q,但這個沖突并不是因處理機Q請求的數(shù)據(jù)正被其他占有而產(chǎn)生的沖突,是一種無關的沖突。所以必須采取一種機制將目錄狀態(tài)及時更新。
2.3 操作系統(tǒng)對LogTM的支持
由于事務的引入,傳統(tǒng)操作系統(tǒng)已經(jīng)不能滿足要求,必須更改或擴展操作系統(tǒng)使事務能穩(wěn)定高效的執(zhí)行。
首先,基于LogTM系統(tǒng),操作系統(tǒng)負責對日志進行創(chuàng)建和維護。它為每一個執(zhí)行線程開辟一片日志區(qū)域,并將該區(qū)域入口地址寫到Log Base寄存器中,同時當某數(shù)據(jù)存入日志后使Log Pointer指針后移,用來存放新數(shù)據(jù)。當發(fā)生回滾,操作系統(tǒng)根據(jù)目前Log Pointer指針從后向前恢復數(shù)據(jù)直到Log Pointer與Log Base指向相同為止。
其次,當執(zhí)行事務發(fā)生切換時,操作系統(tǒng)可以通過擴展目前的TCB(線程控制塊)來對事務相關寄存器內(nèi)容等信息進行保存。
再次,當發(fā)生事務級線程切換時,操作系統(tǒng)判斷切換原因(包括其他線程搶占、時間片到達、事務之間沖突等而執(zhí)行的切換),通知調(diào)度器采取不同的切換策略或沖突策略來完成切換。
最后,由于中斷內(nèi)新創(chuàng)建的事務和被中斷事務沖突而導致活鎖(被中斷事務掛起得不到執(zhí)行,中斷內(nèi)新創(chuàng)建事務由于沖突策略一直回滾——重新執(zhí)行——回滾,也得不到執(zhí)行),操作系統(tǒng)必須能夠記錄回滾次數(shù)并設定一個門限值,如果同一事務回滾數(shù)超過此門限,操作系統(tǒng)可以強行中止該事務而調(diào)度其他事務。
3 結論及展望
本文介紹TM的基本原理,并對當前主流TM系統(tǒng)LogTM進行分析實現(xiàn),得出以下結論:
⑴要實現(xiàn)高效的事務處理必須要有一個很好的基于事務模型的硬件結構。比如:LogTM,硬件專門為TM添加了LogBase、LogPointer等寄存器并改變了cache的結構,在cache中加入了讀(R)和寫(W)標志位;這樣對事務版本管理以及沖突管理都帶來了前所未有的作用,這也是此TM結構優(yōu)越性的體現(xiàn)。
⑵要高效的進行事務處理必須要有TM操作系統(tǒng)的支持,上文中提到了一些操作系統(tǒng)對LogTM的相關支持,但如果要完美的支持事務還需要不斷更改和優(yōu)化已有的操作系統(tǒng),最終的目的是將操作系統(tǒng)事務化,并能很好的處理事務化的用戶級應用。
⑶目前TM系統(tǒng)(包括LogTM)雖然通過一些特有的結構和機制解決了事務處理的一些問題,但是面對今后的發(fā)展,像多級嵌套事務的復雜應用、中斷事務化(特別是外部設備的中斷)、掛起事物與執(zhí)行事務沖突問題、被切換事務的執(zhí)行選擇(重新調(diào)度后,被切換事務可能回滾也可能繼續(xù)接著執(zhí)行)等問題都需要我們不斷的去研究,去尋找最優(yōu)的解決辦法一一攻克,所以對TM的研究任重而道遠。
參考文獻
[1]Yen, L. and J. Bobba, et al. LogTM-SE:Decoupling Hardware Transactional Memory from Caches. In Proc. of Thirteenth Annual International Symp. on High-Performance Computer Architecture.Feb.2007
[2]Moravan, M. J. and J. Bobba, et al. Supporting Nested Transactional Memory in LogTM. In Proc. of the Twelfth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 359-370,Oct.2006
[3]Moore, K. E. and J. Bobba, et al. LogTM: Log_based Transactional Memory. In Proc. of the Twelfth IEEE Symp. on High-Performance Computer Architecture, pages 258–269, Feb. 2006
[4]Herlihy, M. and J. E. B. Moss . Transactional Memory:Architectural Support for Lock-Free Data Structures. In Proc. of the 20th Annual International Symp. on Computer Architecture, pages 289–300, May 1993
[5]Hammond, L. and V. Wong, et al. Transactional Memory Coherence and Consistency. In Proc. of the 31st Annual Intl. Symp. on Computer Architecture, June 2004
[6]Hammond, L. and B. D. Carlstrom, et al. Programming with Transactional Coherence and Consistency(TCC), ASPLOS.04, October 7–13, 2004
更多計算機與外設信息請關注:21ic計算機與外設頻道
評論