このページの本文へ

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

マルチコアCPUを賢く使いこなす スケジューリングの秘密

2011年12月27日 12時00分更新

文● 塩田紳二

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

マルチコアCPUでは
スケジューリングのルールも変わる

 スケジューリングに関わる重要なもうひとつの要素は、メモリー管理だ。メモリーが足りなくなると、仮想記憶を管理するメモリーマネージャーは、使われていないページをスワップアウトしてメモリーを再割り当てする(関連記事)。このときに、同じぐらい使われていないページがあったらどのプロセスを選ぶか、あるいはプロセスの管理しているメモリーのなかでどのページを選ぶかは、メモリーマネージャーの仕事となる。

 しかし、現在動いているプロセスや次に起動されそうなプロセスのメモリーをスワップしてしまうと、これらを再起動するときに時間がかかってしまう。そのためI/O待ちなど何らかの理由で、しばらくの間動かないと思われるプロセスを選択する必要がある。スケジューラーの挙動を予想しなければ、スワップしても支障のないプロセスを見つけられない。

 逆に言えば、スワップアウトされたページを持つプロセスは、しばらく動けなくなる可能性がある。また再開されたとしても、スワップインのためにファイルが読み込まれるので、結局I/O待ちと同じ状態になる。メモリーマネージャーはプロセスの実行を制御するスケジューラーの、一部の役割を担っているとも言えるわけだ。

 多くのOSでは、プロセスに「優先度」をつける。優先順位を付けることで重要なプロセスや、一定時間内に繰り返す必要があるプロセスを優先して実行させる。しかし優先度だけを見ていると、場合によっては長い間、タイムスライスが回ってこないプロセスが出てしまう可能性がある。

 優先度は重要だが、長い時間で見れば各プロセスにはある程度、公平に実行時間が配分されなければならない。優先度だけを見てタイムスライスを分けると、負荷の低いときには最も優先度の低いプロセスも実行させることができるが、負荷が高くなったときには、優先度の高いプロセスしか実行されない可能性がある。スケジューラーは、こうした長期的な視点から、優先度と実行プロセスを管理しなければならない。

 また、以前解説したように、プロセスよりも小さいスケジューリングの単位に「スレッド」がある(関連記事)。ひとつのプロセスが、複数のスレッドを実行している可能性があるわけだ。そうなると、その複数のスレッドやメインスレッド(プロセス)の実行に関して正しく考慮しないと、スレッドの処理結果をほかのスレッドが待っているような場合、待っているスレッドばかりになってしまって、処理する側が後になるような可能性もある。あるいは、スレッド側で処理が終わったのにメインスレッド側へタイムスライスが回らないので、処理の終わったスレッドを終了できないといった堂々巡りになる可能性もある。

 つまり、同一プロセス内のスレッドにはある程度の依存関係があるので、優先度などの実行再開に関する条件が同じなら、同一のプロセスに所属するスレッドを続けて実行させたほうが、処理効率は高くなる(図2)。プロセスが終了すれば占有していたリソースが解放されるし、メモリーなどにも余裕が出る可能性もあるので、さっさと終わらせた方がいいわけだ。

優先度順だけでCPUをスレッドに割り当てるよりも(右)、同一プロセスのスレッドはまとめ割り当てた方が、結果的に全体の処理がスムーズになることもある

 最近のPC用プロセッサーはマルチコアが当たり前で、マルチプロセッサーでもある。またCore iシリーズやAMD FXなどは、ハードウェア的にひとつのプロセッサーコアで同時に2スレッドを実行する「SMT」(インテルではハイパースレッディング)を装備している。この場合、同一プロセスに所属するスレッドを実行するなら、同じコアや同じプロセッサーパッケージを使うほうがキャッシュが共有できるため、高速化できる可能性がある(図3)。キャッシュミスが多発すると、その分処理性能が落ちてしまうからだ。

同一プロセス内のスレッドは、同じコア、同じプロセッサーで処理した方が効率がいい

 またCore iプロセッサーやAMD FXでは、プロセッサーパッケージごとにメモリーコントローラーがあり、そこにメモリーが接続されている「NUMA」構造となっている。そのためマルチプロセッサー環境の場合、自分に接続されているメモリー内にあるプログラムやデータを使う方が、ほかのCPUに接続されたメモリーよりも効率がいい。

 プロセッサーコアとプロセスとの結びつきを、「Affinity」(親和性、親近感)と呼ぶ。こうした理由もあって、Windows 7などマルチコアCPUに対応したWindowsでは、タスクマネージャーがプロセスごとに、実行するプロセッサーコアを固定できる。デフォルトは「すべてのプロセッサー」である。APIも用意されており、スレッドやプロセスを実行するコア(複数)を、明示的に指定できる。

Windows 7のタスクマネージャーで、プロセスを選んで右クリックすると、メニューに「関係の設定」という項目がある。ここでプロセスが使うCPUを割り当てられる

 そのほかにも、プロセスの起動もスケジューラーに関係する。なぜならプロセスが起動するということは、スケジューラーの管理下にそのプロセスが入るからだ。そのためプロセス起動の処理では、準備を終えたあとはスケジューラーに起動処理を任せてしまうこともある。逆に、プロセスの起動段階ではさまざまな準備が行なわれるので、処理負荷も高い。このときにはプロセスに割り当てる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
¥2,413
2
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,313
3
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
4
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
¥2,290
5
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
6
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
¥1,590
7
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
¥9,990
8
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
9
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
¥2,480
10
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
¥20,800

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

デジタル用語辞典

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