ドメインのスケジューリング【後編】:仮想マシンモニタ Xen 3.0解読室(3/3 ページ)
引き続き、ドメインのスケジューリングの仕組みを見ていきます。今回は、Xen上のゲストOSとして動作するLinuxカーネルでは、プロセス切り替えをどのように実現しているのかを解説します。
アイドル状態
ネイティブなLinuxカーネルでは、実行するプロセスがなくなるとアイドルプロセスをスケジューリングし、アイドルプロセスは永久にcpu_idle関数を実行し続けます。電源制御の可能なハードウェアでは、システムを省電力モードに遷移させたり、それがないハードウェアではhlt命令やnwait命令を利用して、少しでも無駄に電力を消費しないようにしています。
準仮想化ドメインのゲストOSがアイドル状態になったとき、「アイドル状態になった」とXenに通知し実行権を手放すことを、Xenは期待しています*。準仮想化ドメイン用のLinuxカーネルでは、アイドル状態になるとxen_idle()関数が呼び出されます。xen_idle()関数はハイパーバイザー呼び出しを行い、Xenに実行権を返します(リスト6の太字部分)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
最後に
次回はsedfスケジューラについて解説します。なお、ドメインスケジューリング関連機能は、Xen 3.0.1のコードのままで説明することにします。次回の記事を読めば、sedfスケジューラの癖や、xmコマンドによるスケジューラの(難解な)制御方法が分かってくるのではないかと思います。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
「アイドル状態になった」と」とXenに通知し実行権を手放すことを、Xenは期待しています
手放さなくとも、割り当て時間を過ぎれば、Xenが強制的にドメイン切り替えを行う。しかし、動作効率を考えると、ゲストOSとして動作するOSは自ら実行権を手放すべきといえる。
本記事は、オープンソースマガジン2006年6月号「仮想マシンモニタ Xen 3.0解読室」を再構成したものです。
関連記事
- ドメインのスケジューリング【前編】
- ドメインの切り替え【後編】
- ドメインの切り替え【前編】
- Xenの内部設計【後編】
- Xenの内部設計【前編】
- Xenのモデルと構造
複数の仮想マシン環境を作り上げ制御するために、仮想マシンモニタであるXenが具体的に何をやっているのか、興味がある方に向け、Xenの設計思想と実装について連載で解説していく。
Copyright © ITmedia, Inc. All Rights Reserved.