本書介紹了虛擬機(jī)在操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言和計(jì)算機(jī)體系結(jié)構(gòu)方面的應(yīng)用。本書內(nèi)容全面,處于學(xué)科的最前沿。書中以清晰而深入的方式,借助有效的應(yīng)用實(shí)例和案例研究,解析了各種基本概念。內(nèi)容涉及虛擬機(jī)的主要類型、析取、對(duì)于目標(biāo)指令集體系結(jié)構(gòu)(ISA)的源ISA仿真、進(jìn)程虛擬機(jī)的執(zhí)行、用于提高仿真性能的翻譯代碼優(yōu)化技術(shù)、高級(jí)語(yǔ)言虛擬機(jī)及其執(zhí)行、協(xié)同設(shè)計(jì)、多處理器系統(tǒng)的虛擬,以及其他新興應(yīng)用。 本書適合于現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)、程序設(shè)計(jì)語(yǔ)言、操作系統(tǒng)和安全技術(shù),以及系統(tǒng)執(zhí)行方面的學(xué)生和從業(yè)者閱讀。那些對(duì)未來(lái)計(jì)算系統(tǒng)感興趣的讀者,同樣會(huì)從本書中獲益。 前言: 封底 虛擬機(jī)技術(shù)應(yīng)用整機(jī)虛擬化的概念,脫離實(shí)體機(jī)的兼容性約束和硬件資源約束,實(shí)現(xiàn)更高程度的軟件可移植性和適用性。虛擬機(jī)快速成為計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的基本要素。虛擬機(jī)可提供系統(tǒng)安全性、靈活性、跨平臺(tái)兼容性、可靠性和資源有效性。虛擬機(jī)技術(shù)設(shè)計(jì)用于解決主要計(jì)算機(jī)組件結(jié)合及應(yīng)用方面的問(wèn)題,在多個(gè)學(xué)科中占據(jù)了重要位置。具體涉及操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言和計(jì)算機(jī)體系結(jié)構(gòu)。例如在處理層,虛擬技術(shù)支持動(dòng)態(tài)程序編譯和獨(dú)立于平臺(tái)的網(wǎng)絡(luò)計(jì)算。在系統(tǒng)層,虛擬技術(shù)支持同一硬件平臺(tái)上以及服務(wù)器中的多操作系統(tǒng)環(huán)境。 回顧歷史可見(jiàn),在所應(yīng)用的多門專業(yè)學(xué)科中各種虛擬機(jī)技術(shù)獨(dú)立發(fā)展,因而很難用一種結(jié)合性的方法揭示其潛在關(guān)系。在本書中,Smith和Nair另辟新路,將虛擬機(jī)作為一門統(tǒng)一的學(xué)科。由于對(duì)相互交錯(cuò)的技術(shù)進(jìn)行了融合,因而能夠以一種結(jié)構(gòu)合理的方式探討和研究虛擬機(jī)的實(shí)現(xiàn)問(wèn)題。 虛擬機(jī)技術(shù)的核心內(nèi)容包括指令集仿真、動(dòng)態(tài)程序翻譯和優(yōu)化、高級(jí)語(yǔ)言虛擬機(jī)(包括Java和CLI)以及系統(tǒng)虛擬機(jī),即可用于單用戶系統(tǒng),也可用于服務(wù)器。 本書特點(diǎn) l 探究應(yīng)用虛擬機(jī)技術(shù)的眾多學(xué)科,包括操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言和計(jì)算機(jī)體系結(jié)構(gòu),并定義出一門新的統(tǒng)一學(xué)科。 l 微軟、惠普及其他工業(yè)研究團(tuán)體的本領(lǐng)域研究人員對(duì)全書進(jìn)行了審閱。 l 對(duì)于計(jì)算機(jī)系統(tǒng)幾十年間的研究和發(fā)展,作者從學(xué)術(shù)和工業(yè)兩方面進(jìn)行了綜合論述。 l 為一些系統(tǒng)提供了原理圖及參考文獻(xiàn),包括Shade模擬系統(tǒng)、FX!32系統(tǒng)、Dynamo/RIO、Java和CLI等流行語(yǔ)言虛擬機(jī)、Jikes RVM、Transmeta Crusoe處理器、IBM的AS/400和z/VM系統(tǒng)、VMware的主機(jī)虛擬機(jī)、Intel的VT-x虛擬技術(shù),以及多處理器虛擬系統(tǒng)——Cellular Disco。 l 討論了一些新興應(yīng)用,包括安全性,以及在機(jī)器和網(wǎng)格運(yùn)算間進(jìn)行計(jì)算環(huán)境的移植。
Chapter One Introduction to Virtual Machines 1.1 Computer Architecture 1.2 virtual machine basics 1.3 process virtual machines 1.4 system virtual machines 1.5 A taxonomy 1.6 summary:the versatility of Virtual Machines 1.7 the rest of the book Chapter Two Emulation:interpretation and binary translation 2.1 basic interpretation 2.2 threaded interpretation 2.3 predecoding and direct threaded interpretation 2.4 interpreting a complex instruction set 2.5 binary translation 2.6 code discovery and dynamic translation 2.7 control transfer optimizations 2.8 Instruction set issues 2.9 case study:shade and the role of emulation during simulation 2.10 summary:performance tradeoffs Chapter Three Process virtual machines 3.1 virtual machine implementation 3.2 compatibility 3.3 state mapping 3.4 memory architecture emulation 3.5 instruction emulation 3.6 Exception Emulation 3.7 operating system emulation 3.8 Code cache management 3.9 System environment 3.10 Case study:FX!32 3.11 Summary Chapter Four Dynamic binary optimization 4.1 Dynamic program behavior 4.2 profiling 4.3 optimizing translation blocks 4.4 optimization framework 4.5 code reordering 4.6 code optimizations 4.7 same-ISA optimization systerms:special-case process virtual machines 4.8 summary chapter five high-level language virtual machine architecture 5.1 the pascal p-code virtual machine 5.2 object-oriented high-level language virtual machines 5.3 the jave virtual machine architecture 5.4 completing the platform:APIs 5.5 the microsoft common language infrastructure:a flexible high-level language virtual machine 5.6 summary:virtual ISA features Chapter six high-level language virtual machinne implementation 6.1 dynamic class loading 6.2 implementing sdecurity 6.3 garbage collection 6.4 java native interface 6.5 basic emultion 6.6 high performance emulation 6.7 case study:the likes research virtual machine 6.8 summary Chapter seven codesigned virtual machines 7.1 Memory and register state mapping 7.2 self-modifying and self-Referencing 7.3 support for code caching 7.4 implementing precise traps 7.5 input/output 7.6 applying codesigned virtual machines 7.7 case study:transmeta crusoe 7.8 case study:IBM AS 7.9 summary Chapter eight system virtual machines 8.1 key concepts 8.2 Resource Virtualization-Processors 8.3 Resource Virtualization-Memory 8.4 resource virtualization-input/output 8.5 performance enhancement of system virtual machines 8.6 case study:V Mware virtual Platform 8.7 case study:the intel VT-x(Vanderpool)technology 8.8 summary Chapter nine Multiprocessor virtualization 9.1 Partitioning of multiprocessor systems 9.2 Physical Partitioning 9.3 logical Partitioning 9.4 case study:cellular disco system virtual machine -based partitioning 9.5 virtualization with different host and guest ISAs 9.6 summary Chapter ten Emerging applications 10.1 Security 10.2 migration of computing environments 10.3 grids:virtual organizations 10.4 sumary Appendix A real machines A.1 Computer system hardware A.2 the user ISA:computation A.3 The system ISA:resource Management A.4 Operating System organization A.5 The operating system interface A.6 system initialization A.7 Multiprocessor architecture A.8 Example instruction set architectures References Index