freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

《虛擬機淺析》word版-文庫吧

2025-04-17 17:36 本頁面


【正文】 現(xiàn)這一點,進程虛擬機需要為所有 (至少是客戶軟件需要關(guān)心的 )信號注冊 handler。然后截獲客戶軟件注冊信號 handler 的系統(tǒng)調(diào)用,為其設置相應的異常索引表項 (信號 =函數(shù)地址 )。那么當進程虛擬機收到一個信號時,虛擬機設置的相應 handler 被調(diào)用。這個 handler 可以通過異常索引表發(fā)現(xiàn)這個信號是被客戶軟件所關(guān)心的,于是跳轉(zhuǎn)到客戶軟件上對應的的函數(shù)地址去。 翻譯和優(yōu)化 以上就是進程虛擬機的一個基 本方法。然而,要想讓客戶軟件盡量快地運行,僅對客戶軟件進行解釋執(zhí)行肯定是不夠的。客戶軟件中的每一條指令都需要被虛擬機一次一次地從內(nèi)存讀出來,然后運行解釋程序,將其解釋成一系列主機上的指令,然后再去執(zhí)行它們。如果對客戶軟件進行翻譯,將客戶軟件指令的解釋結(jié)果生成代碼塊,然后緩存起來,就可以免去每一次都進行解釋的過程。 以怎樣的粒度來翻譯代碼塊呢 ?是基本塊。一個基本塊開始于分支或跳轉(zhuǎn)后立即執(zhí)行的指令、結(jié)束于下一條分支或跳轉(zhuǎn)指令。也就是說,一個基本塊會被順序執(zhí)行,中間不存在分支或跳轉(zhuǎn)指令。而所有的分支或跳轉(zhuǎn)指令只會 跳轉(zhuǎn)到一個基本塊的第一條指令。 翻譯好以后的基本塊被放入代碼 cache 中,當執(zhí)行到一條跳轉(zhuǎn)指令時,通過跳轉(zhuǎn)的目標地址索引到代碼 cache 中對應的基本塊,則可以直接跳轉(zhuǎn)到該基本塊去執(zhí)行。當然代碼 cache 中也可能找不到相應的基本塊 (它可能還未被翻譯,或已從 cache 中清除 ),這就需要 跳轉(zhuǎn) 到客戶軟件的相應代碼,繼續(xù)解釋執(zhí)行或進行一次新的翻譯。 而執(zhí)行完一個被翻譯的基本塊后,程序流程該何去何從呢 ?按上面的定義,基本塊的最后一條指令是跳轉(zhuǎn)指令。但是它們是被翻譯以后的,是直接執(zhí)行的,不由虛擬機干預的。所以最后一條 跳轉(zhuǎn)指令應該跳轉(zhuǎn)到虛擬機的處理代碼中,由虛擬機程序繼續(xù)選擇下一個已翻譯的基本塊、或是解釋新的基本塊。 (這種方式是可以進一步優(yōu)化的,比如通過分支預測技術(shù)預測一組順序運行的基本塊,使它們盡量能夠順序運行。而只在預測失敗的情況下才跳轉(zhuǎn)回虛擬機的代碼中。 ) 進程虛擬機對于基本塊所能做的,除了翻譯之外,還可以優(yōu)化,就像編譯器優(yōu)化目標代碼那樣。但是編譯器只能做靜態(tài)的優(yōu)化,而虛擬機卻是動態(tài)的,可以在實際執(zhí)行過程中收集到更多有利于優(yōu)化的信息。 (比如像通過函數(shù)指針調(diào)用函數(shù)這樣的間接跳轉(zhuǎn),很難通過靜態(tài)優(yōu)化去預測跳轉(zhuǎn)目標,而動態(tài) 優(yōu)化則是有可能的。 ) 剖析 雖然執(zhí)行翻譯后的基本塊比重新解釋這個基本塊要更快一些 (省略了重新解釋的過程 ),但是如果這個基本塊總共只會執(zhí)行一次呢 ?顯然翻譯基本塊的開銷更大一些 (除了需要解釋之外,還需要分配和管理代碼 cache 等 )。所以一味進行代碼翻譯,并不是上策。況且系統(tǒng)的內(nèi)存有限,也未必能容得下客戶軟件的所有代碼翻譯。對翻譯后的基本塊進行優(yōu)化也是這樣,優(yōu)化本身也是有開銷的,一味進行優(yōu)化也不是上策。 為了解決解釋與翻譯 (和優(yōu)化 )的矛盾,需要靠剖析客戶軟件來提供指導數(shù)據(jù)。簡單的說,剖析統(tǒng)計了各個基本塊在最近一段時間內(nèi)的執(zhí)行次數(shù),如果大于某個值,則應該翻譯,再大于某個值,則應該優(yōu)化,并且隨著執(zhí)行次數(shù)的增加可能需要更高級別的優(yōu)化。 為了對客戶軟件進行剖析,在解釋執(zhí)行基本塊的時候,可以很自然地增加統(tǒng)計剖析數(shù)據(jù)的代碼;而在翻譯后的代碼中也可以插入這
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1