このページの本文へ

基礎から覚える 最新OSのアーキテクチャー 第11回

マルチコアCPUの消費電力はスケジューリングで変わる?

2012年02月16日 14時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

スレッドの終了はタイマー割り込み単位で

 Quantumの測定はCPUの動作周波数単位で行なう。Quantum単位で実行時間を測定すると、CPUの動作速度に対して値が大きすぎて、途中に入った割り込み処理を正確に把握できなくなるからだ。Windowsはもともと、タイマー割り込みのみで実行時間を測定していた。Quantumはその頃からの名残である。

 CPUの高速化とともに、高精度なハードウェアタイマーが利用できるようになると、スレッドの実行時間は正確に把握できるようになった。しかしそのためには、スレッドを止めてカウンターの値を読み出し、残り時間などを計算する必要がある。ところがこの頻度を上げてしまうと、それによる負荷だけでも馬鹿にならない時間が必要になる。

 一方でスレッドの残り時間測定は、15.6ミリ秒のタイマー割り込み周期で行なう。もちろんそれ以外に、I/O割り込みなどでもスケジューラー(ディスパッチャー)が動作するので、そのタイミングでも実行中のスレッドの残り時間を測定できる。

 先に述べたとおり、スレッドに割り当てられた時間はフォアグラウンドで18Quantum、バックグラウンドでは6Quantumになる。割り込み処理やスレッド切り替えのためのコンテキストスイッチなどの時間を除いて、スレッドに割り当てられた時間がすぎると、次のタイマー割り込みが入ったときにスレッドは終了される。

 終了タイミングはタイマー割り込みの周期に左右されるが、スレッドの起動はタイマー割り込みとは無関係であり、割り込み周期の途中でスレッドが起動されるほうが確率的に多い。ところが次のタイマー割り込みまでの間に、ほかの割り込み処理やコンテキストスイッチが入るなどして、起動されたスレッドがほとんど実行できないことがある(図1)。

図1 タイマー割り込み間隔とスレッドの実行時間の関係を図にしてみた。x86はモデル固有レジスター(MSR)に「タイム・スタンプカウンタ」があり、クロック周波数でカウントを続けている。これを使うことで、起動や割り込みのタイミングを知ることが可能だ。コンテキストスイッチのときに値を保存し、戻ってきたときの値から引くことで、ほかの処理に使われていた時間を求められる。このようにしてスレッドの正味の実行時間を測定することが可能になる。

 特に、アプリケーションの起動直後は必要な処理が多いため、最低限でも割り込みタイマー周期(3Quantum)程度は、連続して実行させなければならない。しかし、同じ優先順位で別のスレッドが起動されていた場合には、こちらも次に実行するスレッド(の候補のひとつ)になる。

 Windowsはこうした状況を把握して、Quantumの残り時間を計測し、短いときには割り込みで中断させることなく、タイムスライスを割り当てるように処理する。Quantumを単位として測定していたのでは、1Quantum未満の処理が入ったときに見逃してしまい、十分な時間実行されたと判断される可能性がある。だからQuantumの残り時間は、CPUの動作周波数を用いた高い精度で測定されている。

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,980
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
7
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥1,880
8
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899
9
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
10
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン