近日,beat365信息科學技術學院計算機科學技術系肖臻研究員領導的課題組開發出一套基于硬件輔助虛拟化的多核确定性重演系統,引起業界廣泛關注。确定性重演是指在處理器指令執行過程中,通過記錄開始時的狀态和執行過程中的必要信息,從而使得将處理器恢複到開始位置重新根據記錄的信息執行這一系列指令後,能夠獲得與前一次執行完全相同的結果。虛拟機确定性重演技術在軟件調試、信息安全、入侵檢測、病毒行為分析、雙機熱備份等衆多領域有廣泛的應用。
針對單核處理器的确定性重演系統已經比較成熟,并且出現了商用系統,然而多核處理器環境的出現給确定性重演帶來了極大的挑戰。在多核環境下,多線程程序的各個線程對共享内存的交織訪問是導緻程序執行結果不确定的重要原因之一。業界已有的在多核環境下進行确定性重演的方案往往需要修改處理器架構增加專門用于記錄的硬件,從而使得成本大大提高,目前還沒有任何一家能夠在實際中得到推廣。
肖臻研究員領導的課題組第一次提出基于硬件輔助虛拟化的技術從軟件上實現多核虛拟機在線确定性重演。該系統采用了基于指令塊的方法,通過内存訪問寫時複制機制和指令塊的提交-回滾機制保證指令塊的執行滿足原子性和可串行性。該方法利用Intel CPU中已有的硬件輔助虛拟化特性,不需要對硬件做任何修改,就可以把虛拟機多核确定性重演的效率提高一個數量級,把檢查點恢複的延遲降低一個數量級,從而使該項技術真正走向實用。
肖臻課題組從事虛拟機确定性重演的研究已經有十幾年的曆史,在國際著名會議和期刊上發表了很多論文,相關成果都以開源軟件的方式發布到社區,供大家免費使用。肖臻課題組目前正在緻力于利用确定性重演技術實現智能合約的高效、細粒度并發執行。已有的區塊鍊技術(比如以太坊中的智能合約)隻支持單線程,就是因為在多核環境下并行程序的執行存在不确定性,影響區塊鍊中的節點達成共識。肖臻課題組開發的确定性重演技術有希望極大地提高智能合約的執行效率,成為區塊鍊3.0中不可或缺的核心技術。
有關該課題組的更多信息,請參考肖臻研究員的主頁:http://zhenxiao.com/