VirtualMachine本のひとり勉強会
VM本読書記録がいくら自分用メモとはいえ、粒度がむちゃくちゃで読みにくいので、いったんVM本の全体構成をおさらいしてみましょう。(そういうことは先にやれ>おれ)
現時点(2009.2.4)では、Chapter 3の途中です。読み進むにつれ、このエントリはかきかえていきます。
Chapter 1: Introduction to Virtual Machines
タイトル通り、仮想マシンへのイントロダクション。コンピュータのアーキテクチャ、「仮想」とはなんであるか、仮想マシンのいろいろ、そして本書の構成について。
Chapter 2: Emulation: Interpretation and Binary Translation
命令セットのエミュレーション全般。直観的なインタープリットから始まり、threaded, predecode, binary translationなどの方式や、命令セットのエミュレーションにおけるさまざまな問題について概観します。
Chapter 3: Process Virtual Machines
プロセス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