VM本読書記録がいくら自分用メモとはいえ、粒度がむちゃくちゃで読みにくいので、いったんVM本の全体構成をおさらいしてみましょう。(そういうことは先にやれ>おれ)

現時点(2009.2.4)では、Chapter 3の途中です。読み進むにつれ、このエントリはかきかえていきます。

Chapter 1: Introduction to Virtual Machines

Chapter1のメモ

タイトル通り、仮想マシンへのイントロダクション。コンピュータのアーキテクチャ、「仮想」とはなんであるか、仮想マシンのいろいろ、そして本書の構成について。

Chapter 2: Emulation: Interpretation and Binary Translation

Chapter2のメモ

命令セットのエミュレーション全般。直観的なインタープリットから始まり、threaded, predecode, binary translationなどの方式や、命令セットのエミュレーションにおけるさまざまな問題について概観します。

Chapter 3: Process Virtual Machines

Chapter3のメモ

プロセスVMを構成するはなし。まずは全体の構成からはじまります。それから互換性・状態のマッピング・エミュレーションいろいろ(メモリアーキテクチャ・命令・例外・OS)・コードキャッシュの管理・そしてシステム環境への埋め込み。FX!32の実例をとりあげてから、まとめです。

Chapter 4: Dynamic Binary Optimization

ダイナミックバイナリ最適化の話。ここでは主に複数のbasic blockをまたがる最適化について。

まずは最適化の前提としてプロファイルで「どこがよく実行されているのか」を知る。そしてsuperblockをはじめとするブロック最適化。それをベースにした最適化フレームワーク。フレームワークの上でのテクニックとしてのコード再配置。そしてコードの最適化いろいろ(余分なブランチ削除、定数展開、コピー展開等々)。さらに、同一ISAでの最適化についての話題。

以下、じわじわ更新していきます。

Chapter 5: High-Level Language Virtual Machine Architecture

Chapter 6: High-Level Language Virtual Machine Implementation

Chapter 7: Codesigned Virtual Machines

Chapter 8: System Virtual Machines

Chapter 9: Multiprocessor Virtualization

Chapter 10: Emerging Applications

Appendix A: Real Machines

実マシンの復習。

Virtual Machines: Versatile Platforms For Systems And Processes (The Morgan Kaufmann Series in Computer Architecture and Design)Virtual Machines: Versatile Platforms For Systems And Processes