• 締切済み

マルチコアCPUのコア割り当て

マルチコアCPUのコア割り当て 基本的な質問ですが教えてください。 マルチコアCPUで実行コアの割り当てはどのように 振り分けているのでしょうか? (ハードは正常に動作している条件で) 勝手な想定では、 1)OS(ドライバ)が効率よく、振り分けを行う。 2)APLのコーディングにより明示的に振り分ける。 3)OSもAPLも特に意識なく、CPUが自立的に振り分ける。 のいずれかと思っていますが、実際はどのような動作を しているのでしょうか?

みんなの回答

  • parts
  • ベストアンサー率62% (6366/10152)
回答No.1

SMP(対象型マルチプロセッシング)で検索されれば答えは出てくるでしょうが、CPUの基本優先度とリソース割振がアプリケーション側で設定されていない場合は、OSカーネルがアプリケーション管理の過程で全てのリソース(CPUに限らず)に関するロードバランスを制御します。 割り振りの効率は、OSのロードバランス制御機構の精度(能力)によって変わります。 尚、SMPを利用するにはBIOSなどのハードウェアプラットフォーム側にマイクロコード(ファームウェア)が、整備されている必要があります。(すでにここ15年の環境ではSMP準拠のハードウェアプラットフォームになっています) ちなみに、SMPとは反対の機構を持つのが、ASMP(非対称マルチプロセッシング)と呼ばれる物です。この機構では予めCPUに役割を与えその役割専用にプロセッサを利用します。

yama3939
質問者

補足

ご回答ありがとうございました。 内容は理解できました。 >CPUの基本優先度とリソース割振が >アプリケーション側で設定されて >いない場合は.... ということは、アプリケーション側から意図的に 割り振ることができるのですね? それは、マルチコアCPUの場合のみに 可能なのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A