国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法

      文檔序號:6341689閱讀:226來源:國知局
      專利名稱:使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法
      技術(shù)領域
      本發(fā)明涉及一種使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法, 用于獲得二進制程序執(zhí)行時的各種動態(tài)剖分信息,為分析二進制可執(zhí)行代碼程 序的執(zhí)行流程和優(yōu)化二進制翻譯系統(tǒng)工作提供有效的支持。本發(fā)明屬于并行化 計算和二進制翻譯領域。
      背景技術(shù)
      動態(tài)二進制翻譯技術(shù)作為進程級虛擬機領域中重要的組成部分,在近年來的 計算機學術(shù)交流活動中,頻頻被提及和討論。通常,動態(tài)二進制翻譯技術(shù)采用
      "兩次翻譯過程"和"緩存翻譯后代碼"的技術(shù)來提高性能。所謂兩次翻譯, 是指先從由源機器指令組成的源基本塊,翻譯為由系統(tǒng)自行描述的中間語言組 成的中間基本塊,再由中間基本塊翻譯為目標機器上的可執(zhí)行基本塊。這種技 術(shù)的優(yōu)點在于在不需要任何高級語言源代碼信息的條件下,可以通過直接加 載源機器端的二進制可執(zhí)行程序,并利用自身對不同機器指令集架構(gòu)(ISA)的 翻譯功能,得到目標機器端的可執(zhí)行二進制程序。更重要的是,這種技術(shù)將翻 譯和執(zhí)行工作合并在一次程序過程中全部完成,有別于傳統(tǒng)靜態(tài)編譯方法的先 編譯后執(zhí)行的二次過程。但是,動態(tài)二進制翻譯系統(tǒng)的這種優(yōu)勢也為其獲取程
      序剖分信息(profile)帶了很大的困難,即很難在動態(tài)執(zhí)行的過程中保證獲取完 備的剖分信息。而剖分信息正是用于程序執(zhí)行流程監(jiān)控的數(shù)據(jù)依據(jù)。
      剖分信息(profile)是指那些在程序執(zhí)行過程中,對程序性能起著重要影響 作用的信息。這些信息的獲取,不僅可以用來判別程序編寫的優(yōu)劣,還能夠為 優(yōu)化工作提供量化的依據(jù)。在二進制程序中,程序是用以跳轉(zhuǎn)指令或系統(tǒng)調(diào)用 結(jié)束的^^^:炎(Basic Block)為度量和劃分的原子單位的,故完備的剖分信息就 包括每個基本塊的執(zhí)行次數(shù);基本塊間的跳轉(zhuǎn)次數(shù);分支預測的錯誤預測率;指令緩存、數(shù)據(jù)緩存的缺失命中率等。這些信息可以用來確定代碼翻譯的質(zhì)量 和指導各種優(yōu)化策略的有效實施?,F(xiàn)有的統(tǒng)計這些剖分信息的方法包括插樁 (Instrumentation)禾卩采樣(Sampling)兩禾中技術(shù)。
      *插樁(Instrumentation)這種方式通過在代碼中插入探針指令來采集和程
      序執(zhí)行行為、特性有關的數(shù)據(jù)信息。這種方法借助軟件實現(xiàn),雖然硬件
      成本較低,但是會引入額外的開銷。 *采樣(Sampling)這種方式以一定的時間間隔對程序運行的相關數(shù)據(jù)進
      行數(shù)據(jù)收集,而不需要對程序進行修改,但是這種方法獲得的剖分信息
      具有一定的誤差,而且需要借助硬件實現(xiàn),成本較高。 在傳統(tǒng)的動態(tài)二進制翻譯系統(tǒng)中,為了節(jié)省硬件成本和降低系統(tǒng)對特定硬件 的依賴程度,通常選用插樁的方法進行剖分信息的收集,但是考慮到系統(tǒng)的性 能,僅插入了開銷較小的、只能用來統(tǒng)計基本塊執(zhí)行次數(shù)的探針指令來完成熱 路徑的構(gòu)建工作。所謂熱路徑,即當二進制程序中的某些基本塊按照一定的順 序頻繁的被執(zhí)行時,這樣的程序路徑被稱為熱路徑。當這樣的基本塊或者路徑 被檢測出來時,通過將這條路徑上的各個基本塊整合在一起就可以加快程序的 執(zhí)行速度,原因就在于減少了跳轉(zhuǎn)指令執(zhí)行的次數(shù),這樣不僅提高了指令緩存 的命中率,也提高了處理器流水工作機制的效率。為了獲取更多的剖分信息使 超級塊的構(gòu)造更加有依據(jù)性,傳統(tǒng)方法只能通過頻繁的回調(diào)統(tǒng)計函數(shù)實現(xiàn),而 該策略會使系統(tǒng)的執(zhí)行效率變慢數(shù)十倍以上。(請參見文獻Valgrind:A framework for heavyweight dynamic binary instrumentation, PLDI conference, 2007)。
      隨著多核處理器的不斷發(fā)展,并行計算由于其更高的性能被越來越多的應用 在各種場景中,這主要歸結(jié)于硬件級線程的概念,即不同的線程可以工作在不 同的CPU處理器核心上。在動態(tài)二進制翻譯系統(tǒng)中,由于二進制程序收集剖分
      信息的工作并不與原有動態(tài)二進制翻譯系統(tǒng)"兩次翻譯"與執(zhí)行的流程存在過 多的依賴,因此,可以嘗試使用硬件級線程的方法來更高效地完成剖分信息獲 取的工作。但是,這種思路在已有的國內(nèi)外研究和實踐工作領域中并未有類似 的實現(xiàn)案例。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種使用監(jiān)控線程對二進制翻 譯程序執(zhí)行流程動態(tài)監(jiān)控的方法,具有軟件開銷小,硬件成本低的優(yōu)良特性, 能完整準確的獲取監(jiān)控信息,進一步提升動態(tài)二進制翻譯系統(tǒng)的運行時性能。
      為實現(xiàn)上述目的,本發(fā)明首先將原有動態(tài)二進制翻譯系統(tǒng)執(zhí)行流程作為主線 程,并為原有系統(tǒng)添加新的程序監(jiān)控線程MT,然后為每一個翻譯生成的基本塊 插樁代碼,使每個基本塊執(zhí)行時均將自身的入口地址寫入隊列中,隊列溢出的 情況使用線程間等待的方式來避免。監(jiān)控線程MT負責按序?qū)⒏鱾€入口地址取 出并查找對應的中間指令基本塊,根據(jù)該基本塊的結(jié)束類型更新線程MT中相 應的數(shù)據(jù)結(jié)構(gòu),完成程序監(jiān)控的目的。最后,監(jiān)控線程MT參照收集的剖分信 息,以決策者的身份完成熱路徑的構(gòu)建優(yōu)化。
      本發(fā)明的使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法具體實 現(xiàn)步驟如下
      1、 本發(fā)明首先將原有動態(tài)二進制翻譯系統(tǒng)執(zhí)行流程作為主線程,并在原有 系統(tǒng)上新創(chuàng)建一條監(jiān)控線程MT,用于完成對二進制程序執(zhí)行行為的實時監(jiān)視 工作。主線程和監(jiān)控線程MT獨立工作在多核處理器平臺的不同核心上。
      2、 借鑒傳統(tǒng)插樁技術(shù)的原理,為每一個由動態(tài)二進制翻譯生成的二進制基 本塊的頭部,插入一段機器代碼,在執(zhí)行該基本塊的時候,這段機器代碼負責 將這個基本塊入的口地址存放入指定的隊列Q中。當在這個過程中, 一旦該隊 列Q被主線程中不斷執(zhí)行的基本塊的入口地址填滿時,為了保證監(jiān)控的準確性和 程序的正確性,主線程必須暫停執(zhí)行,等待監(jiān)控線程MT處理完隊列中的所有 數(shù)據(jù)后發(fā)出的再次啟動信號Signal,當主線程收到該信號時,主線程才能繼續(xù) 執(zhí)行。
      3、 監(jiān)控線程MT依次從隊列Q中獲取基本塊的入口地址,并通過査找該 入口地址對應的中間指令基本塊,來了解該中間指令基本塊具體的程序行為, 收集需要的各種剖分信息,并將結(jié)果存放于監(jiān)控線程MT自建的數(shù)據(jù)結(jié)構(gòu)中。 如果當該基本塊入口地址存放的位置是隊列Q的最大可存儲位置時,監(jiān)控線程MT將重新清空隊列Q,并發(fā)送啟動信號Signal通知主線程繼續(xù)執(zhí)行。
      4、根據(jù)收集到的剖分信息,如果線程MT檢測到某條程序路徑執(zhí)行的次數(shù) 大于某個設定的閾值時,監(jiān)控線程MT將以決策者的身份,完成構(gòu)建熱路徑的 優(yōu)化過程。
      5、對當前入口地址對應的基本塊的剖分信息收集工作完成后,監(jiān)控線程 MT將繼續(xù)獲取隊列Q中下一個入口地址,重復步驟3和4中的操作,以達到對 二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的目的。
      本發(fā)明與傳統(tǒng)方法相比,具有軟件開銷小,硬件成本低,程序分析監(jiān)控與程 序執(zhí)行并行進行,獲取的監(jiān)控信息完整準確等多種優(yōu)良特性,能夠進一步地指 導動態(tài)二進制翻譯系統(tǒng)的優(yōu)化工作,提高其翻譯代碼的質(zhì)量,降低其可執(zhí)行代 碼的分支預測錯誤率、緩存缺失率等影響性能的重要因素,因此這種方法能更 進一步提升動態(tài)二進制翻譯系統(tǒng)的運行時性能。
      具體實施例方式
      為更好地理解本發(fā)明的技術(shù)方案,以下通過具體的實施例作進一步描述。以 下實施例不構(gòu)成對本發(fā)明的限定。 1.創(chuàng)建硬件級監(jiān)視線程MT
      本發(fā)明實施例是基于上海交通大學自主開發(fā)的動態(tài)二進制翻譯系統(tǒng)CrossBit (請參見文獻:動態(tài)二進制翻譯基礎平臺CrossBit的設計與實現(xiàn),計算機工程, 2007.12 )之上研制的,CrossBit的執(zhí)行流程為(1)加載源可執(zhí)行映像;(2) 査找哈希表中是否存在由翻譯后的目標機器碼組成的基本塊對象;(3)若查找 命中,執(zhí)行對應的目標機器代碼基本塊;若查找缺失,則執(zhí)行"由源機器碼組 成的基本塊->由中間指令組成的基本塊->由目標機器代碼組成的基本塊"的基本 塊兩次翻譯的過程,并將結(jié)果存入目標代碼緩存中,更新哈希表,該表具有在 CrossBit中定位各基本塊內(nèi)存位置的功能。(4)執(zhí)行目標代碼基本塊,如果遇到 跳轉(zhuǎn)指令的目標地址不能確定或系統(tǒng)調(diào)用時,通過上下文切換(Context Switch) 回到CrossBit程序中,完成系統(tǒng)調(diào)用,或完成將跳轉(zhuǎn)指令鏈接至新生成的目的 基本塊的操作。最后程序流程跳回至流程(2)直到程序運行結(jié)束或發(fā)生異常。本發(fā)明將CrossBit原有的流程統(tǒng)一設置為一個主線程,將負責監(jiān)控程序行為 的所有模塊歸結(jié)為另一個監(jiān)視線程MT。線程的創(chuàng)建使用了 Linux下的pthread
      程序函數(shù)庫,艮P:
      pthread一create(pthread一t pid, pthread—attr_t attr,void* fUnc(void*), void* arg);
      其中,參數(shù)pid代表該線程在操作系統(tǒng)中的唯一標示,attr中包含該線程應有的 屬性信息,func為該線程使用的代碼函數(shù)實體,arg為其參數(shù)。
      為了使主線程和監(jiān)視線程MT具有硬件線程的特征,本發(fā)明使用Linux內(nèi)核 宏函數(shù)CPU—SET將兩個線程分別分配給不同的硬件處理器資源
      CPU一SET( 0, &mask) //將主線程分配在多核處理器的0號核心上, CPU_SET( 1, &mask) //將監(jiān)控線程MT分配在多核處理器的1號核心上。 2.插樁必要的代碼
      如果不采用硬件線程的方式而是傳統(tǒng)方法來監(jiān)控二進制程序的話,必然會使 用大量的插樁代碼來完成應有的功能,導致程序執(zhí)行時的效率較低。本發(fā)明借 鑒插樁技術(shù)的原理,結(jié)合硬件線程的特點,在每個經(jīng)動態(tài)二進制翻譯系統(tǒng)翻譯 生成的基本塊頭部均插入如下一段機器代碼,相對復雜的各種信息統(tǒng)計操作均 被安排在線程MT中完成,即變原有的串行剖分模式為一種并行剖分模式。
      具體的插入的機器代碼如下
      %movw &QueueCount, %eax 〃將隊列頭指針值放入eax寄存器; %cmp 12M, %eax 〃比較頭指針值與12M的大小關系,12M為多次實驗后 確定的隊列空間最大值;
      %jle labell 〃小于等于12M跳至labell;
      %movb 1, &overflow 〃否則設置隊列溢出標志位變量overflow為1;
      %ret 〃返回CrossBit主程序;
      labell:
      %add 4,%eax 〃label 1處首先將代表頭指針的eax加4,因為每個EnterAddress
      占據(jù)4個字節(jié);
      %movw %eax, &QueueCount 〃將新的頭指針寫回原頭指針內(nèi)存變量; %add &QueueEntry, %eax 〃計算實際存放位置,即頭指針加上隊列基地址;%movwEnterAddress, [%eax,0] 〃內(nèi)存寫操作,將基本塊入口地址寫入隊列;
      這段代碼是一段在匯編語言級別進行隊列操作的程序,該隊列存在于程序進 程的虛擬內(nèi)存空間中,故可以被主線程和監(jiān)視線程MT共同訪問。該隊列的基 地址存放在變量QueueEntry中,而隊列頭指針變量QueueCount始終指向該隊列 的隊頭位置,壓入隊列的操作就是將數(shù)據(jù)保存進QueueEntry+QueueCount標示的 內(nèi)存位置中。標志位overflow用來通知CrossBit主程序發(fā)生了隊列溢出行為, 即隊列被基本塊的入口地址填滿的狀態(tài)發(fā)生,此時主線程會調(diào)用pthread庫中的 條件變量操作pthread_cond_wait(& pthread_cond_t)來等待監(jiān)控線程MT重新清 空隊列后發(fā)出的啟動信號量。該系統(tǒng)調(diào)用會一直暫停主線程的執(zhí)行,直到收到 對于該條件變量的signal操作pthread_cond_signal(& pthread—cond_t)的調(diào)用才 會繼續(xù)主線程的執(zhí)行。 3.監(jiān)視線程MT的具體實現(xiàn)
      監(jiān)控線程MT依次從隊列Q中獲取基本塊的入口地址,并通過查找該入口 地址對應的中間指令基本塊,來了解該中間指令代碼塊的具體的程序行為,收 集需要的各種剖分信息,并將結(jié)果存放于監(jiān)控線程MT自建的數(shù)據(jù)結(jié)構(gòu)中。
      當監(jiān)控線程MT獲取到一個基本塊的入口地址時,它首先利用動態(tài)二進制翻 譯系統(tǒng)中的哈希表函數(shù)查找得到該入口地址在"兩次翻譯"中對應的中間指令 基本塊。由該中間指令基本塊中的指令信息可以知道該基本塊結(jié)束時的結(jié)束類 型,包括直接跳轉(zhuǎn)、間接跳轉(zhuǎn)、或是系統(tǒng)調(diào)用。硬件級監(jiān)控線程MT負責對當 前執(zhí)行的二進制程序的程序流程進行實時監(jiān)控,為此該監(jiān)控線程自建了三種數(shù) 據(jù)結(jié)構(gòu),分別為基本塊執(zhí)行次數(shù)表(用于統(tǒng)計直接跳轉(zhuǎn)的目標基本塊執(zhí)行的次 數(shù))、間接跳轉(zhuǎn)表(用于統(tǒng)計間接跳轉(zhuǎn)各邊的跳轉(zhuǎn)次數(shù))、系統(tǒng)調(diào)用記錄信息 表。由于主線程中每個入口地址是按程序執(zhí)行的順序依次被存入隊列的,因此, 監(jiān)控線程MT只需按先入先出(FIFO)的順序依次讀取,就可以了解程序執(zhí)行 的內(nèi)容和流程。同時,監(jiān)控線程MT與主程序線程并行執(zhí)行,這就可以較好的 保證監(jiān)控的實時性。為了獲取每個入口地址對應的基本塊的語義,本發(fā)明利用 了 CrossBit中成熟的中間語言機制(請參考文獻爿w /wfemjeife^丄awgwage ieve/0; rtVn/za,/ow尸ra附ewo ^》r Z)_y""m/c 5/war少7 "w^/""'(9W, Shi Huihui, Wang Yi, Guan Haibing, and Liang Alei, ACM SIG/PLAN Notice, vol-42(5), May 2007.)
      舉例說明,當監(jiān)控線程MT取到的入口地址為0x40000000時(每個入口地 址為4字節(jié),用于標示某代碼塊在整個進程空間中的位置),線程MT會首先 使用哈希函數(shù)找到該入口地址對應的中間語言組成的中間指令基本塊,通過讀 取中間指令基本塊的最后一條指令,得到如下的三種結(jié)果之一.-
      JMP (v25,0) 〃間接跳轉(zhuǎn);
      BRANCH (tttn,v21 ,v22, v0, disp) 〃直接跳轉(zhuǎn),tttn為條件碼,v0==0 , v21 , v22中存放需要比較的兩個操作數(shù),即當v21和v22滿足tttn指定的跳轉(zhuǎn)條件時, 程序跳至(0+disp)指定的目標地址。
      SYSCALL 〃系統(tǒng)調(diào)用;
      其中的JMP指令由于使用了虛擬寄存器v25作為基地址尋址,而偏移量為0, 故該條指令為間接跳轉(zhuǎn),當讀到下一個入口地址為0x50000000時,線程MT就 在間接跳轉(zhuǎn)表中增添記錄(0x40000000, 0x50000000, 1),即表示從0x4000000 基本塊向0x50000000基本塊的間接跳轉(zhuǎn)被執(zhí)行了一次。對于直接跳轉(zhuǎn)和系統(tǒng)調(diào) 用進行的操作類似,不同的僅為更新的具體的數(shù)據(jù)結(jié)構(gòu)的不同。
      在上述流程中,本發(fā)明各表均由C十+標準庫STL提供的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。
      當監(jiān)控線程MT發(fā)現(xiàn)其正在處理的入口地址的當前存放位置是隊列的最大 可存儲位置時,監(jiān)控線程MT需要將隊列重新置位。方法為設置現(xiàn)有的 QueueCount變量為0,即下次主線程將重新從隊列起始位置保存新的入口地址。 另外,監(jiān)控線程MT還需要調(diào)用pthread庫中的pthread_cond—signal (&pthreacLcondJ)函數(shù)完成啟動信號的發(fā)送。 4.監(jiān)視線程MT的決策功能實現(xiàn)
      監(jiān)控線程MT進行程序監(jiān)控的目的,就在于獲取完善的剖分信息和分析二進 制程序的執(zhí)行流程。而當剖分信息滿足一定條件時,本發(fā)明可以啟動一些特定 的優(yōu)化方法,常用的方法為熱路徑的構(gòu)建。
      因此,本發(fā)明的監(jiān)控線程MT當檢測到某個直接跳轉(zhuǎn)的基本塊的執(zhí)行次數(shù)大 于閾值3000或某條間接跳轉(zhuǎn)的執(zhí)行次數(shù)大于閾值5000時(這些閾值通過反復實驗確定),就完成相應的優(yōu)化工作,包括基于直接跳轉(zhuǎn)檢測完成的超級塊構(gòu)建
      過程,和基于間接跳轉(zhuǎn)檢測完成的超級塊構(gòu)建過程,從而使原有的動態(tài)二進制
      系統(tǒng)的執(zhí)行速度加快。
      5.監(jiān)控線程MT工作模式的設計
      完整的監(jiān)控線程MT采用了 while輪詢結(jié)構(gòu)進行設計,而并非常見的通過互 斥信號量(Mutex)實現(xiàn)的消費者/生產(chǎn)者關系模型。輪詢架構(gòu)盡管會占用大量的 處理器時間,但是具有更好的實時并行效果,加之監(jiān)控線程MT被實現(xiàn)為硬件 線程,其處理器時間的浪費并不影響主程序的執(zhí)行效率,故被本發(fā)明采用。因 此,當隊列Q不為空時(即QueueCount 〉 0時),線程MT將不停地循環(huán)讀取 下一個入口地址并進行處理。
      如此,實現(xiàn)對二進制翻譯程序執(zhí)行流程的動態(tài)監(jiān)控。
      權(quán)利要求
      1、一種使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法,其特征在于包括如下步驟1)將原有動態(tài)二進制翻譯系統(tǒng)執(zhí)行流程作為主線程,并在原有系統(tǒng)上新創(chuàng)建一條監(jiān)控線程MT,用于完成對二進制程序執(zhí)行行為的實時監(jiān)視工作;主線程和監(jiān)控線程MT獨立工作在多核處理器平臺的不同核心上;2)借鑒傳統(tǒng)插樁技術(shù)的原理,為每一個經(jīng)動態(tài)二進制翻譯系統(tǒng)翻譯生成的二進制基本塊頭,插入一段機器代碼,在執(zhí)行該基本塊的時候,這段機器代碼負責將該基本塊的入口地址寫入隊列Q中;在此寫入過程中,一旦隊列Q被填滿,主線程必須暫停,等待監(jiān)控線程MT處理完隊列中的所有數(shù)據(jù)后發(fā)出的再次啟動信號Signal,當主線程收到該再次啟動信號時才能繼續(xù)執(zhí)行;3)監(jiān)控線程MT依次從隊列Q中獲取基本塊的入口地址,并通過查找該入口地址對應的中間指令基本塊,來了解該中間指令基本塊具體的程序行為,收集需要的各種剖分信息,并將結(jié)果存放于監(jiān)控線程MT自建的數(shù)據(jù)結(jié)構(gòu)中;如果當該基本塊入口地址存放的位置是隊列Q的最大可存儲位置時,監(jiān)控線程MT將清空隊列Q,并發(fā)送再次啟動信號Signal通知主線程繼續(xù)進行;4)根據(jù)收集到的剖分信息,如果監(jiān)控線程MT檢測到某條程序路徑執(zhí)行的次數(shù)大于設定的閾值時,監(jiān)控線程MT將以決策者的身份,完成構(gòu)建熱路徑的優(yōu)化過程;5)對當前入口地址對應的基本塊的剖分信息收集工作完成后,監(jiān)控線程MT將繼續(xù)獲取隊列Q中下一個入口地址,重復步驟3)、4)中的操作,以實現(xiàn)對二進制翻譯程序執(zhí)行流程的動態(tài)監(jiān)控。
      全文摘要
      本發(fā)明提出了一種使用監(jiān)控線程對二進制翻譯程序執(zhí)行流程動態(tài)監(jiān)控的方法。首先為原有動態(tài)二進制翻譯系統(tǒng)創(chuàng)建新的程序監(jiān)控線程MT,然后為每一個翻譯生成的基本塊插樁代碼,使每個基本塊執(zhí)行時均將自身的入口地址寫入隊列中,隊列溢出的情況使用線程間等待的方式來避免。監(jiān)控線程MT負責按序?qū)⒏鱾€入口地址取出并查找對應的中間指令基本塊,根據(jù)該基本塊的結(jié)束類型更新相應的數(shù)據(jù)結(jié)構(gòu),完成程序監(jiān)控的目的。最后,監(jiān)控線程MT參照收集的剖分信息,以決策者的身份完成構(gòu)建熱路徑的優(yōu)化。與傳統(tǒng)的程序監(jiān)控方法相比,本發(fā)明具有軟件開銷小,硬件成本低,程序分析監(jiān)控與程序執(zhí)行并行進行,獲取的監(jiān)控信息完整準確等多種優(yōu)良特性。
      文檔編號G06F9/45GK101593125SQ20091005432
      公開日2009年12月2日 申請日期2009年7月2日 優(yōu)先權(quán)日2009年7月2日
      發(fā)明者倪志晨, 李曉龍, 梁阿磊, 管海兵, 鄧海鵬 申請人:上海交通大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1