ドメインのスケジューリング【後編】仮想マシンモニタ Xen 3.0解読室(3/3 ページ)

» 2007年07月26日 08時52分 公開
[高橋浩和(VA Linux Systems Japan),ITmedia]
前のページへ 1|2|3       

アイドル状態

 ネイティブなLinuxカーネルでは、実行するプロセスがなくなるとアイドルプロセスをスケジューリングし、アイドルプロセスは永久にcpu_idle関数を実行し続けます。電源制御の可能なハードウェアでは、システムを省電力モードに遷移させたり、それがないハードウェアではhlt命令やnwait命令を利用して、少しでも無駄に電力を消費しないようにしています。

 準仮想化ドメインのゲストOSがアイドル状態になったとき、「アイドル状態になった」とXenに通知し実行権を手放すことを、Xenは期待しています*。準仮想化ドメイン用のLinuxカーネルでは、アイドル状態になるとxen_idle()関数が呼び出されます。xen_idle()関数はハイパーバイザー呼び出しを行い、Xenに実行権を返します(リスト6の太字部分)


void xen_idle(void)
{
    local_irq_disable();

    if (need_resched()) {         local_irq_enable();     } else {         stop_hz_timer();         /* Blocking includes an implicit local_irq_enable(). */         HYPERVISOR_sched_op(SCHEDOP_block, 0);         start_hz_timer();     } }
リスト6 xen_idle()関数

最後に

 次回はsedfスケジューラについて解説します。なお、ドメインスケジューリング関連機能は、Xen 3.0.1のコードのままで説明することにします。次回の記事を読めば、sedfスケジューラの癖や、xmコマンドによるスケジューラの(難解な)制御方法が分かってくるのではないかと思います。

このページで出てきた専門用語

「アイドル状態になった」と」とXenに通知し実行権を手放すことを、Xenは期待しています

手放さなくとも、割り当て時間を過ぎれば、Xenが強制的にドメイン切り替えを行う。しかし、動作効率を考えると、ゲストOSとして動作するOSは自ら実行権を手放すべきといえる。


関連キーワード

カーネル | Linux | オープンソース | 仮想化 | Xen


本記事は、オープンソースマガジン2006年6月号「仮想マシンモニタ Xen 3.0解読室」を再構成したものです。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ