虛擬機:系統與進程的通用平台

虛擬機:系統與進程的通用平台

《虛擬機:系統與進程的通用平台》的作者從計算機體系結構研究者的角度,以計算機系統接口抽象層次中兩個最重要的接口——套用的二進制接口(ApplicationBinaryInterface,ABI)和應用程式接口(ApplicationProgramInterface,API)為邊界,將計算機系統資源的各種虛擬化技術劃分為進程虛擬機和系統虛擬機兩大類展開討論,清晰地展現了虛擬化技術各種方法的各個層面和各類套用。

基本介紹

  • 書名:虛擬機:系統與進程的通用平台
  • 作者:(美國)(Smith.J.E.)詹姆斯,(Nair.R.)瑞維
  • 譯者:安虹,張昱,吳俊敏
  • ISBN:9787111256687
  • 定價:78.00 元
  • 出版社機械工業出版社
  • 出版時間:2009
  • 開本:16開
內容簡介,作者簡介,編輯推薦,目錄,

內容簡介

《虛擬機-系統與進程的通用平台》可以作為講授計算機系統結構研究生課程《虛擬機技術》的教材或教學參考書。工作在虛擬機技術領域的專業人士可以用於自學這些領域的前沿技術。《虛擬機:系統與進程的通用平台》還可以作為一本計算機系統軟硬體參考資料。

作者簡介

JamesE.Smith,威斯康星大學麥迪遜分校電子與計算機工程系教授。從伊利諾伊大學獲得計算機科學博士學位。1979至1981年間在美國的控制數據公司工作,參與CYBER180/990的設計。其後,曾參與ACAZS-1的開發工作。1989年加入Cray研究公司,率研究小組開發和分析未來超級計算機的體系結構。近期,致力於研究虛擬機抽象技術,通過虛擬機硬體和軟體的協同設計和緊耦合來提高性能。鑒於在計算機體系結構領域內的成就,Smith博士榮獲1999年的ACM/IEEEEckert-Mauchly獎。
RavlNair在IBMThomasJ.Watson研究中心工作。為多款處理器的構造和設計做出了貢獻。他涉足多個領域,包括計算機體系結構、性能分析、多處理器虛擬化、設計自動化以及測試,出版過一些著作,擁有一些相關的專利,並曾榮獲IBM獎。他開發出的設計和分析工具包括用於剖析的二進制重寫工具、軌跡生成工具和模擬器。近期,他致力於研究處理器微架構、動態編譯和虛擬機技術。1978年,從伊利諾伊大學獲得計算機科學博士學位,曾執教於普林斯頓大學和哥倫比亞大學。Nair博士是lBM技術研究院的成員,也是IEEE的會士。
譯者簡介:
安虹博士,中國科學技術大學計算機系副教授,計算機系統結構研究室主任。主持過曙光2000和曙光3000的並行程式設計環境和工具的開發工作;參加了龍芯1號和龍芯2號的體系結構設計和性能分析工作。近年來,主要從事多處理器晶片體系結構,並行程式設計模型、環境和工具,以及高性能計算套用方面的研究工作,並開發了一組用於多處理器晶片體系結構研究的模擬器、編譯器和程式並行性分析工具。主講計算機組成與設計、計算機體系結構、作業系統,處理器體系結構、計算機系統性能評價與預測、並行程式設計等課程,合作編著了《並行算法實踐》教材。曾榮獲國家科技進步二等獎、國家教學成果二等獎、中國科學院傑出科技成就獎、中國科學院科技進步二等獎、安徽省教學成果一等獎、中國科學院優秀教師獎、寶鋼優秀教師獎、中國科學技術大學優秀教師獎。
張昱博士,中國科學技術大學計算機系副教授,計算機軟體研究室主任。近年來,主要從事新型並行程式語言、自動機技術在XML流數據處理方面的研究,設計實現了面向XML數據流的查詢引擎以及訪問控制系統,開發了Java虛擬機的基準程式。主講程式設計語言、數據結構、編譯原理和技術、程式設計語言理論等課程,合作編著了《編譯原理》教材。
吳俊敏博士,中國科學技術大學計算機系副教授。近年來,主要從事並行計算機系統結構、並行與分散式計算機系統的研究工作。主講並行計算機系統結構、計算機作業系統等課程,合作編著了《並行計算機體系結構》教材。

編輯推薦

縱觀歷史,作業系統、程式語言和編譯器、計算機體系結構等多個領域都發展了各自的虛擬機技術,但沒有從統一的角度搭建這些技術的基本關係。現代計算機系統的硬體結構正朝著片上多核。系統多級並行處理的方向發展,並且通過Innternet互聯起來,構成功能更強大、套用更廣泛的系統。在系統的物理資源大大增加的同時,系統的物理實現也變得極為複雜,系統在可擴展性、可靠性。可用性,可管理性和安全性等方面都遇到了難以用單點體系結構技術來解決的一系列問題。虛擬機技術在應對這一系列問題上越來越顯現出前所未有的重要性。《虛擬機:系統與進程的通用平台》總結了各種不同的虛擬機技術,為計算機各個領域的學者和研發人員提供了一個新的交叉研究領域,便子以更好的組織方式來研究、設計和實現虛擬機。
《虛擬機-系統與進程的通用平台》特色:
·結構清晰。《虛擬機-系統與進程的通用平台》以計算機系統接口抽象層次中兩個最重要的接口——套用的二進制接口和應用程式接口為邊界,將計算機系統資源的各種虛擬化技術劃分為進程虛擬機和系統虛擬機兩大類展開討論,清晰地層現了虛擬化技術各種方法的各個層面及各類套用。
·全面系統。作者從學術和工業應廚兩個方面對虛擬機技術幾十年的研究和發展歷史進行了綜述,從體系結構、程式設計語言和編譯、作業系統及系統安全等多個專業領域深入探討了虛擬機技術的套用。
·理實交融。本書提供了大量實際虛擬機系統的原理說明及翔實的參考文獻,包括Shade模擬系統、FX!32系統、Dynamo/RIO、Java和CLI等流行語言虛擬機、JikesRVM、TransmetaCrusoe處理器、IBM的AS/400和z/VM系統、VMware的主機虛擬機。Intel的VT-X虛擬技術以及多處理器虛擬系統——CellularDisco,微軟、惠普及其他工業研究團體韻本領域研究人員對全書進行了審閱。
·面向未來。《虛擬機-系統與進程的通用平台》在最後一章專門討論了一些新興的虛擬機套用,包括安全領域(討論入侵檢測系統的原理以及虛擬機在系統攻防方面的套用潛力)、移動計算環境(討論商業上的套用:VMware的vmotion)以及計算格線(展示典型的系統虛擬機對新興格線系統出現的重要作用)方面的套用。

目錄

第1章虛擬機導論
1.1計算機體系結構
1.2虛擬機基礎
1.3進程虛擬機
1.3.1多道程式設計
1.3.2仿真器和動態二進制翻譯器
1.3.3相同ISA下的二進制最佳化器
1.3.4高級語言虛擬機:平台獨立性
1.4系統虛擬機
1.4.1系統虛擬機的實現
1.4.2全系統虛擬機:仿真
1.4.3協同設計虛擬機:硬體最佳化
1.5一種分類方法
1.6總結:虛擬機功能的多樣性
1.7本書的其他部分
第2章仿真:解釋和二進制翻譯
2.1基本的解釋
2.2線索解釋
2.3預解碼和直接執行緒解釋
2.3.1基本的預解碼
2.3.2直接線索解釋
2.4解釋一個複雜的指令集
2.4.1IA-32ISA的解釋
2.4.2線索解釋
2.4.3一個高性能IA-32解釋器
2.5二進制翻譯
2.6代碼發現和動態翻譯
2.6.1代碼發現的問題
2.6.2代碼定位問題
2.6.3增量式預解碼和翻譯
2.6.4相同ISA仿真
2.7控制轉移最佳化
2.7.1翻譯連結
2.7.2軟體間接跳轉預測
2.7.3影子棧
2.8指令集問題
2.8.1暫存器結構
2.8.2條件碼
2.8.3數據格式和運算
2.8.4記憶體地址解析
2.8.5記憶體數據對齊
2.8.6位元組序
2.8.7定址結構
2.9案例研究:SHADE和模擬過程中的仿真角色
2.10總結:性能折衷
第3章進程虛擬機
3.1虛擬機實現
3.2兼容性
3.2.1兼容性的級別
3.2.2一個兼容性框架
3.2.3實現依賴
3.3狀態映射
3.3.1暫存器映射
3.3.2記憶體地址空間映射
3.4記憶體結構仿真
3.4.1記憶體保護
3.4.2自引用和自修改代碼
3.5指令仿真
3.5.1性能權衡
3.5.2分階段的仿真
3.6異常仿真
3.6.1異常檢測
3.6.2中斷處理
3.6.3確定精確的客戶機狀態
3.7作業系統仿真
3.7.1相同作業系統仿真
3.7.2不同作業系統仿真
3.8代碼cache管理
3.8.1代碼cache實現
3.8.2替換算法
3.9系統環境
3.10案例研究:FX132
3.11總結
第4章動態二進制最佳化
4.1動態程式的行為
4.2剖析
4.2.1剖析的作用
4.2.2剖析的類型
4.2.3收集剖析
4.2.4解釋期間的剖析
4.2.5剖析翻譯後的代碼
4.2.6剖析開銷
4.3最佳化翻譯塊
4.3.1提高局部性
4.3.2蹤跡
4.3.3超塊
4.3.4動態超塊的形成
4.3.5樹簇
4.4最佳化框架
4.4.1方法
4.4.2最佳化和兼容性
4.4.3一致的暫存器映射
4.5代碼重排
4.5.1基元指令重排
4.5.2實現一個調度算法
4.5.3超塊與蹤跡
4.6代碼最佳化
4.6.1基本的最佳化
4.6.2兼容性問題
4.6.3超塊間的最佳化
4.6.4特定指令集的最佳化
4.7相同ISA最佳化系統:特殊的進程虛擬機
4.7.1代碼修補
4.7.2案例:HPDynamo
4.7.3討論
4.8總結
第5章高級語言虛擬機結構
5.1 PascalP-code虛擬機
5.1.1記憶體結構
5.1.2指令集
5.1.3 P-code總結
5.2面向對象高級語言虛擬機
5.2.1安全和保護
5.2.2健壯性——面向對象編程
5.2.3網路
5.2.4性能
5.3Java虛擬機結構
5.3.1數據類型
5.3.2數據存儲
5.3.3 Java指令集
5.3.4異常和錯誤
5.3.5二進制類
5.3.6 Java本地接口
5.4完善平台:APIs
5.4.1 Java平台
5.4.2 JavaAPI
5.4.3序列化和反射
5.4.4 Java執行緒
5.5微軟公共語言基礎:一個靈活的高級語言虛擬機
5.5.1公共語言接口
5.5.2屬性
5.5.3微軟中間語言
5.5.4隔離和套用域
5.6總結:虛擬ISA的特點
5.6.1元數據
5.6.2記憶體結構
5.6.3記憶體地址格式
5.6.4精確的異常
5.6.5指令集特點
5.6.6指令發現
5.6.7自修改和自引用代碼
5.6.8作業系統依賴
第6章高級語言虛擬機實現
6.1動態類載入
第7章協同設計虛擬機
第8章系統虛擬機
第9章多處理器虛擬化
第10章新興套用
附錄A實際機器
參考文獻
索引
……

相關詞條

熱門詞條

聯絡我們